ruby-on-rails – 通过link_to,rails将show参数从show action传
我有一些显示一个类别的节目动作.但是从那里我想通过链接创建新产品.重点是我通过link_to传递了类别ID和名称.
它顺利,它打开产品/新动作.在浏览栏中有这样的链接http:// mysite / products / new?id = 43& name = Skeleji.没关系. 但是,我如何在表格中提供这些ID和名称,我在哪里填写有关新产品的信息? 之间,产品和类别我建立了关系. 到目前为止我的代码看起来像这样. 我的类别/显示操作代码如下所示. <%= link_to "Add Product",{:controller => "products",:action => "new",:id => @category.id,:name => @category.name }%> 产品控制器,新动作看起来像这样. def new @product = Product.new @product.category_id = @category.id end 单击创建它会创建项目,但不包含category_id.哪里可能是问题? 解决方法
您应该只需在新操作中设置值:
def new @product = Product.new @product.category_id = params[:id] @product.name = params[:name] end 然后它们将以您的形式出现. 但我认为调用参数id并不是一个好主意,因为它是资源路由的默认参数名称. ProductsController中的params [:id]通常应该始终引用Product对象.碰巧,你正在新的动作中使用它,在正常使用中永远不会收到一个id参数,所以我怀疑你会遇到任何麻烦,但它不是很语义. 如果你让Product接受Category的嵌套属性,那么我认为你可以简单地做: @product = Product.new(params[:product]) 如果你构建你的params,如:: product => {:name => “whatever”,:category_attributes => {:id => 1}}但根据您的需要,这可能有点过分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |