鉴于这些参数:
{
"items"=>{"id"=>"", "id"=>"", "id"=>""}
}
我如何为rails中的每个项目分配内容?
这就是我的尝试:
params[:items].each do |i|
item = Item.find(i)
@content = params[:s]
end
end
显然找不到params[:s]
的任何值,因此@content
等于nil
。
我完全不知道如何获得这个价值。我很欣赏每个答案。谢谢!
答案 0 :(得分:0)
查看Hash
类的文档,特别是each
方法。块中有两个参数,一个键和一个值。因此,添加第二个参数将允许您获得该值:
params[:items].each do |id, value|
# You can access the value for each ID
# with the variable 'value' while in the block
end
我不确定你为什么反复设置@content
。这是整个脚本中的相同变量;您是否尝试在每个content
上设置item
属性?如果是这样,您只需说item.content = value
(如果您希望它在数据库中保留,可能会在某个时候保存item
)。你不需要把它放在Item.find
的块中;把它放在外块内的下一行。 (如果您确实需要Item.find
的阻止,那么您似乎在该行上缺少do
。)