Ruby on rails 轨道,复选框
我不知道如何返回选中的值。这是我的密码Ruby on rails 轨道,复选框,ruby-on-rails,checkbox,Ruby On Rails,Checkbox,我不知道如何返回选中的值。这是我的密码 controller: def index // there I would like to get checked cities respond_to do |format| format.html # index.html.erb format.xml { render :xml => @cities } end end viewer: <%= render 'fo
controller:
def index
// there I would like to get checked cities
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @cities }
end
end
viewer:
<%= render 'form' %>
_form:
<% for cities in Database.find(:all) %>
<div>
<%= check_box_tag cities.city1 %>
<%= cities.city1 %>
</div>
<% end %>
及
您好,您的问题似乎与HABTM相似,请通过复选框尝试
<%form_tag "some_action", :method => :post do %>
<% Database.find(:all).each do |city| %>
<div>
<%= check_box_tag "cities[]",city.city1, :false %>
<%= citiy.city1 %>
</div>
<% end %>
<%end%>
为此,您需要遍历城市列表,并为每个城市添加一个名为“cities[]”的复选框标记 我通常将列表作为变量提供给视图中使用。在控制器中执行Database.find
<% for city in @cities %>
<%= check_box_tag "cities[]", city.id %> <%= city.name %>
<% end %>
注意-如果未选中任何复选框,则不会为参数提交任何内容,即根本不会有“cities[]”参数。根据搜索逻辑,您可能需要添加此选项。如果是,请添加到表单中
<%= hidden-field_tag "cities[]", '' %>
或者您可以在控制器中处理它。在控制器代码中放入调试器。检查参数时会发生什么情况?有什么类似于params[:cities]的吗?如果是这样,那里面有什么?还有一件事,从视图向数据库发出请求是个坏主意。您应该在控制器内部执行此操作。我尝试从控制器向数据库发出请求,但出现了错误。我认为params[城市]有问题。每个城市都有。。结束,因为没有此选项,我可以选中复选框。要使params[:cties]可用,POST和GET请求之间没有任何区别。您必须从表单发送数据。params[:cities]有问题。每个都有| city |。。。结束,因为如果没有此选项,我可以选中复选框(但只能选中,不能获取参数)。错误是由于@cities变量为nil造成的。在控制器操作中创建@cities。
<% for city in @cities %>
<%= check_box_tag "cities[]", city.id %> <%= city.name %>
<% end %>
def some_action
if !request.post?
@cities = Database.find(:all)
render 'view'
else
params[:cities].each do |city|
...
end
redirect_to view_path
end
end
<% for city in @cities %>
<%= check_box_tag "cities[]", city.id %> <%= city.name %>
<% end %>
<%= hidden-field_tag "cities[]", '' %>