为什么我的查询字符串参数传递给我的看法
网址:
/categories/new?parent_id=6
控制器:
def new
@category = Category.new(:parent_id => params[ :parent_id ])
end
查看:
<%= form_for(@category) do |f| %>
<%= f.hidden_field :parent_id %>
<% end %>
来源页面:
<input id="category_parent_id" name="category[parent_id]" type="hidden" />
为什么这个值没有被传递?
编辑:我之后意识到我没有:parent_id
在我的模型类的我attr_accessible
一部分。一切都按照现在的样子工作。谢谢你们的帮助。
@Ceilingfish之后编辑的经验之谈
试试这个:
<%= form_for(@category) do |f| %>
<%= f.hidden_field :parent_id, :value => params[:parent_id] %>
<% end %>
我得到一个消息的异常:对'未定义的方法 '合并' “6”:String' – Bill 2011-05-22 21:58:12
我认为他的意思是' params [:parent_id]%>'。但是,如果对象具有适当的属性设置,它应该被自动填充。 – Ceilingfish 2011-05-22 21:59:53
谢谢@Ceilingfish;) – apneadiving 2011-05-22 22:02:44
您试图从表单中的隐藏字段中读取值,但它正在作为URL中的查询参数发送。
我们需要多一点的去与这里比尔。然而,请尝试一下,让我们知道。 Category.new(params [:parent_id])并在视图中添加并查看输出。 – CharlesJHardy 2011-05-22 21:40:36
我想你应该检查nested_attributes。你可能需要那个来让你的代码更加结构化。 http://railscasts.com/episodes/196-nested-model-form-part-1 http://railscasts.com/episodes/197-nested-model-form-part-2 – 2011-05-22 21:53:04
对不起@Ceilingfish,那在这个问题上是一个错字。代码是正确的。 – Bill 2011-05-22 22:01:02