> I'm trying to implement Rails functionality which would allow to compare > Model records (in my case different plans).
> I'm unsure what would be the proper approach towards this with Rails, is > there any tutorial for doing something like available on internet/book?
> Which would be better: to pass the comparing model ids to the compare > controller by post or by url?
> Any tips are highly appreciated. > --
If I understand correctly you have records in the db and wish to compare them on demand by the user clicking on a link which goes to a compare controller. In this case I would pass the id values as parameters of a GET request on the compare controller. It should not be a POST as it does not cause the data in the db to be changed. The actual compare operation should be a method of the model whose objects are being compared of course.
Colin Law wrote: > 2009/11/8 Aljaz Fajmut <rails-mailing-l...@andreas-s.net>: >> controller by post or by url?
>> Any tips are highly appreciated. >> --
> If I understand correctly you have records in the db and wish to > compare them on demand by the user clicking on a link which goes to a > compare controller. In this case I would pass the id values as > parameters of a GET request on the compare controller. It should not > be a POST as it does not cause the data in the db to be changed. The > actual compare operation should be a method of the model whose objects > are being compared of course.
> How can you pass array of parameters to GET request?
The same as anything else, eg
if @my_array contains [0,1,2]
<%= link_to 'Compare', :controller => 'compare', :action =>
'do_compare', :ids => @my_array %>
If the values you want to pass come from fields then it just a matter
of setting up the fields correctly. Google should be able to sort you
out, I always have to look it up.
If you are only comparing two records then just pass the ids as two params.
> Colin Law wrote:
>> 2009/11/8 Aljaz Fajmut <rails-mailing-l...@andreas-s.net>:
>>> controller by post or by url?
>>> Any tips are highly appreciated.
>>> --
>> If I understand correctly you have records in the db and wish to
>> compare them on demand by the user clicking on a link which goes to a
>> compare controller. In this case I would pass the id values as
>> parameters of a GET request on the compare controller. It should not
>> be a POST as it does not cause the data in the db to be changed. The
>> actual compare operation should be a method of the model whose objects
>> are being compared of course.
Colin Law wrote: > 2009/11/8 Aljaz Fajmut <rails-mailing-l...@andreas-s.net>:
>> How can you pass array of parameters to GET request?
> The same as anything else, eg > if @my_array contains [0,1,2] > <%= link_to 'Compare', :controller => 'compare', :action => > 'do_compare', :ids => @my_array %>
> If the values you want to pass come from fields then it just a matter > of setting up the fields correctly. Google should be able to sort you > out, I always have to look it up.
> If you are only comparing two records then just pass the ids as two > params.
> Colin
Would it make more sense to make separate controller for comparations or would it be better to place it inside Plans controller?
What would be the best way to build the GET request url with the specified plan ids (for instance with form where you can use checkboxes to set the desired plans)? Would you do it with JS? -- Posted via http://www.ruby-forum.com/.