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
on 2013-02-18 00:43
on 2013-02-18 02:18
try
[:subject_id, :book_id, :chapter_id, :section_id, :subsection_id,
:minisection_id].each do |k|
"@#{k.to_s}" = session[k] if session[k].present?
end
2013/2/17 Dave Castellano <lists@ruby-forum.com>
> @subject_id = session[:subject_id]
> if !session[:section_id].blank?
>
> 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.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
--
att,
Rogerio
A complicao se descomplica na mesma proporo que fazemos os ns se
desatarem ao tecer o conhecimento do saber.
on 2013-02-18 02:21
or @subject_id = session[:subject_id] if session[:subject_id].present? @book_id = session[:book_id] if session[:book_id].present? @chapter_id = session[:chapter_id] if session[:chapter_id].present? @section_id = session[:section_id] if session[:section_id].present? @subsection_id = session[:subsection_id] if session[:subsection_id].present? @minisection_id = session[:minisection_id] if session[:minisection_id].present? 2013/2/17 Rogerio Medeiros <argerim@gmail.com> >> >> >> end >> >> To unsubscribe from this group and stop receiving emails from it, send an > > Rogerio > > A complicao se descomplica na mesma proporo que fazemos os ns se > desatarem ao tecer o conhecimento do saber. > -- att, Rogerio A complicao se descomplica na mesma proporo que fazemos os ns se desatarem ao tecer o conhecimento do saber.
on 2013-02-18 05:03
On Sun, Feb 17, 2013 at 7:16 PM, Rogerio Medeiros <argerim@gmail.com> wrote: > [:subject_id, :book_id, :chapter_id, :section_id, :subsection_id, > :minisection_id].each do |k| > "@#{k.to_s}" = session[k] if session[k].present? Sorry -- really not sure what's supposed to be happening here -- you're assigning to a string literal?
on 2013-02-18 06:36
On Mon, Feb 18, 2013 at 12:02 PM, tamouse mailing lists < tamouse.lists@gmail.com> wrote: > -- > apparently, he meant... instance_variable_set("@#{k.to_s}", session[k]) if session[k].present? kind regards -botp
on 2013-02-18 18:34
botp wrote in post #1097518: > On Mon, Feb 18, 2013 at 12:02 PM, tamouse mailing lists < > tamouse.lists@gmail.com> wrote: > >> -- >> > > apparently, he meant... > > instance_variable_set("@#{k.to_s}", session[k]) if session[k].present? > > kind regards -botp Thank you.. this different approach taught me alot. Dave
on 2013-02-20 14:57
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!
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.