Need to pass a property that isn’t associated with a model? I did. It took me a few minutes, but the solution is codetty easy.
Instead of passing the instance variable your form is using, try this.
<% form_for [:admin, @post]} do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<p>
<%= label(:skip_queue, "Skip queue") %>
<%= check_box("overrides", "skip_queue") %>
</p>
<p>
<%= f.submit "Submit" %>
</p>
<% end %>
<%= f.error_messages %>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<p>
<%= label(:skip_queue, "Skip queue") %>
<%= check_box("overrides", "skip_queue") %>
</p>
<p>
<%= f.submit "Submit" %>
</p>
<% end %>
You’d access the property of the check box like so:
# log
Processing Admin::PostsController#create (for 127.0.0.1 at 2009-03-06 03:03:01) [POST]
Parameters: {"commit"=>"Update", "post"=>{"title"=>"Title", "overrides"=>{"skip_queue"=>"1"}}
# access the property
params[:overrides][:skip_queue]
Processing Admin::PostsController#create (for 127.0.0.1 at 2009-03-06 03:03:01) [POST]
Parameters: {"commit"=>"Update", "post"=>{"title"=>"Title", "overrides"=>{"skip_queue"=>"1"}}
# access the property
params[:overrides][:skip_queue]
Tags: check boxes, check_box_tag, non-model check box, non-model properties
Hey nice blog. I have one similiar. Would you be interested in exchanging blogroll links?
It's easy to forget that you can use the stand-alone FormHelper methods when you are in model/attribute mode. Thanks for this. I just have one possibility to add:
If you aren't using other 'overrides', you may as well use check_box_tag. This would clean up your code and give you extra flexibility when setting the check box initial value.
# View
<% form_for [:admin, @post] do |f| %>
…
<%= label_tag(:skip_queue, 'Skip queue') %>
<%= check_box_tag(:skip_queue) %>
…
<% end %>
# Controller
# access the property
params[:skip_queue]
Yeah i tried and its working.. follow this code who are all need..
liposuction