Ruby on Rails Wednesday, February 20, 2013

def set_instance_var_with_session_value variable

    instance_variable_set("@#{variable.to_s}", session[variable]) if session[variable].present?
end

and you will have a general method for this, for any symbol.

for example call set_instance_var_with_session_value(:subject_id)

it should work!

On Monday, 18 February 2013 00:43:42 UTC+1, Ruby-Forum.com User wrote:
Hi,

As I continue learning to program, I am finding things I think can
probably be done in a better way.  The following code seems like
something
programmers must run into all the time and I am wondering if there is a
better way to write the code in this situation (it seems very repetitive
to me).  I'm having fun and trying to get better at this....

    if !session[:subject_id].blank?
        @subject_id = session[:subject_id]
    end

    if !session[:book_id].blank?
      @book_id = session[:book_id]
    end

    if !session[:chapter_id].blank?
      @chapter_id = session[:chapter_id]
    end

    if !session[:section_id].blank?
      @section_id = session[:section_id]
    end

    if !session[:subsection_id].blank?
      @subsection_id = session[:subsection_id]
    end

    if !session[:minisection_id].blank?
      @minisection_id = session[:minisection_id]
    end

Is there a better way??

Thanks...

Dave

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/EGTbOQ6YnjsJ.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment