mta*_*tay 1 ruby ruby-on-rails
我有一个非常简单的用Ruby编写的循环:
params[:category].each do |i|
cat = Category.find(i)
string << cat.name
end
Run Code Online (Sandbox Code Playgroud)
奇怪的问题是它只会经历一次这个循环!
params[:category] 应该是一系列的参数都属于类别标签,对吧?
这是使用控制器中的select标签生成的:
<%=select_tag "category", options_from_collection_for_select(@category,"id" , "name"),:multiple => true, :class=>"bbFormSelect",:id=>"select_category", :name => "category" %>
Run Code Online (Sandbox Code Playgroud)
如果你看到什么是错的,请告诉我!
您可以通过手动记录变量来检查变量的内容,如下所示:
logger.info(params[:category])
Run Code Online (Sandbox Code Playgroud)
这将适用于所有控制器.
但我建议你以不同的方式去做.根据您的方法,控制器将为所提供的每个类别调用一次数据库.它应该足以将它发送到find方法,如下所示:
@categories = Category.find(params[:category])
names = @categories.map(&:name).join
Run Code Online (Sandbox Code Playgroud)
如果find方法获取一个id数组而不仅仅是一个id,它将返回一个类别数组.