我有一个form_for帮助器,可以为我的Image
模型创建一个对象。它看起来像这样:
<%= form_for :image, url: images_path do |f| %>
<p>
<%= f.file_field :file %>
</p>
<p>
<input type="radio" name="index" value="1">1
<input type="radio" name="index" value="2">2
<input type="radio" name="index" value="3">3
</p>
<p><%= f.submit "submit" %></p>
<% end %>
在观察params散列后,:file文件按预期传递。我也需要在这个哈希中传递单选按钮中的值,或者至少,我需要知道图像控制器的create
函数中该值是什么。如何通过params哈希(或通过其他方式)传递此值?
答案 0 :(得分:2)
您可以将单选按钮的name
属性更改为此image[index]
。
更好的方法(IMO)是使用实例变量来存储这样的值,因为它允许你编写像f.radio_button :index
这样的代码。
例如
class Image < ActiveRecord::Base
attr_accessor :index
# Uncomment if you're using Rails < 4, otherwise whitelist the attr in the controller
#attr_accessible :index
end
另一方面,请考虑使用radio_button_tag
之类的表单助手,比纯HTML更好。
答案 1 :(得分:0)
在form_for中,您可以执行以下操作:
<p>
<%= f.radio_button_tag(:index, "1") %>
<%= f.label_tag(:index_1, "1") %>
<%= f.radio_button_tag(:index, "2") %>
<%= f.label_tag(:index_2, "2") %>
<%= f.radio_button_tag(:index, "3") %>
<%= f.label_tag(:index_3, "3") %>
</p>