我是RoR的新手。嗯,一般的编程新手。 我想将多个ID从第一个视图传递到第二个视图,但是只传递我使用check_box_tag选择的ID。
----------第一视图-------------------
命名:
<%= form_tag(method: "post") do %>
<%= check_box_tag("camp", params[:id]) %>
<%= submit_tag("Add to comparison cart") %>
------------- Controller ---------------
def compare
@camps = Camp.find(params[:id])
端
----------第二种观点----------------
<%= @camps.name %>
问题: 当我转到第二个视图时,它只保存最新的&#34;阵营&#34;我查了一下。
问题: 如何将多个阵营保存到第二个视图?
答案 0 :(得分:0)
这里发生的事情是Camp.find()只返回一个对象,而你显然需要返回多个对象。
可能有一个等效的.find()可以找到并返回多个对象,但是我还没有使用它,所以我不知道它会被调用什么。如果它存在,那将是一个理想的解决方案。
另一种方法是创建一个数组,然后使用重复的Camp.find()调用来填充该数组。像(伪代码道歉,没有时间测试它):
@camps = []
for each check box
@camps.add(camps.find(params[:id])) if checkbox is checked
end
(我假设您可以在Ruby中添加数组,我自己还是新的......)