options_for_select.

Even reading the documentation I can not figure out what is the select_tag difference between this:

<% = select_tag (bags , "options_for_select (bags.collect @ {| bb | [bb.bag_type, bb.id]},          ruser.bags.collect @ {| ub | ub.id}), {: multiple => true,: id => "bags"})%>

and this:

<% = select_tag "bags , " options_for_select (bags.collect @ {| bb | [bb.bag_type, bb.id]},          : multiple => true,: id => "bags")%>

The html code is the same.

Even reading the documentation I can not figure out what is the select_tag difference between this:

Neither of those are valid ruby. Have you made a typo somwhere?

Fred

No no they are right, perhaps in the second example there is no need of :multiple => true. If you try they work. I take the code from http://blog.devinterface.com/it/2010/12/ruby-on-rails-and-jquery-multiselect-with-checkbox/

Even reading the documentation I can not figure out what is the select_tag difference between this:

Neither of those are valid ruby. Have you made a typo somwhere?

No no they are right, perhaps in the second example there is no need of :multiple => true.

ruby -c begs to differ. The blog post that you links to has substantially different code (eg no misplaced quote marks). Did you actually copy & paste what is in your app ?

Fred

I have and they don't. Can you guarantee that you have copied and pasted out of working code? The first one has a missing " and they both have space after <% before = which is not allowed.

Colin

They work. The first: <%= select_tag("bags", options_for_select(@bags.collect { |bb| [bb.bag_type, bb.id] },         @ruser.bags.collect { |ub| ub.id }), {:multiple => true, :id => "bags"}) %>

the second:   <%= select_tag "bags", options_for_select(@bags.collect { |bb| [bb.bag_type, bb.id] }, :multiple => true, :id => "bags") %>

Obviously you must have a ruser and bag model, that code is in the form used to create a new ruser.

Sorry the second is: <%= select_tag "bags", options_for_select(@bags.collect { |bb| [bb.bag_type, bb.id] }, :multiple => true, :id => "bags") %>

Look at your original post, those are not the same, you have taken the spaces out after <% and added an extra " in the first after select_tag(. Plus other changes.

I see now that you have just posted a further correction. Can I suggest that you post them both again, double checking that you have exactly the right code for both of them, by running it and then copy/paste the code into the post.

Colin

Sorry for my mistakes. The exact code is:

the first: <%= select_tag("bags", options_for_select(@bags.collect { |bb| [bb.bag_type, bb.id] },         @ruser.bags.collect { |ub| ub.id }), {:multiple => true, :id => "bags"}) %>

the second: <%= select_tag "bags", options_for_select(@bags.collect { |bb| [bb.bag_type, bb.id] }, :multiple => true, :id => "bags") %>

It seems that the html code is the same.

> I see now that you have just posted a further correction. Can I > suggest that you post them both again, double checking that you have > exactly the right code for both of them, by running it and then > copy/paste the code into the post.

Sorry for my mistakes. The exact code is:

the first: <%= select_tag("bags", options_for_select(@bags.collect { |bb| [bb.bag_type, bb.id] }, @ruser.bags.collect { |ub| ub.id }), {:multiple => true, :id => "bags"}) %>

Well the first one is attempting to set which options should be selected by default

Fred