[rails创建页面从

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[rails创建页面从相关的知识,希望对你有一定的参考价值。

我有CategoriesProducts。产品有关系belongs_to :category

在类别显示页面中,我有一个按钮来添加新产品。此按钮转到我创建新产品的页面,但是我需要为新产品指定类别。

如何将id页面从原来的位置传递给新产品?因此,如果我在类别category中,则单击“添加产品”,并且该产品自动与Electronic类别相关联。

希望你能理解我想要的。谢谢

答案

首先,我要确定每个产品是否包含在]中>>一个类别,或者它是否仅与一个类别相关联。它包含的提示是:

  • 您希望每个产品都有一个'父'类别。
  • 您希望每个产品都将始终出现在其父类别的上下文中。
  • [并且仅当您认为是这种情况时,我才会尝试嵌套

该类别中的产品资源。
Eletronic

如果您这样做,rails将确保您的产品与正确的类别相关联。魔术发生在# routes.rb resources :categories do resources :products end # products_controller.rb (SIMPLIFIED!) class ProductController < ApplicationController before_filter :get_category def new @product = @category.products.build end def create @product = @category.products.build(params[:product]) if @product.save redirect_to @product else render template: "new" end end def get_category @category = Category.find(params[:category_id]) end end 中,它会根据关系自动设置category_id。

[如果您希望将类别和产品保留为简单的关联,虽然我很想以稍微不同的方式来处理它,但我只会按照Eric Andres的回答使用查询参数:

@category.products.build

这主要只是风格上的差异。埃里克(Eric)的答案也适用-我只是更愿意在模型本身上设置值,而不用担心参数等问题。

另一答案

您需要在链接中传递# link: new_product_path(category_id: @category.id) # So far, so similar. # products_controller.rb class ProductsController < ApplicationController def new @product = Product.new @product.category_id = params[:category_id].to_i if params[:category_id] end end # new.erb <%= f.hidden_field :category_id %> ,例如category_id

以上是关于[rails创建页面从的主要内容,如果未能解决你的问题,请参考以下文章

[rails创建页面从

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?

为 memcached 和 Rails 组合片段和对象缓存的最佳方式

如何在不与 MainActivity 交互的情况下从通知中打开片段页面?

如何在 Android 工作室中从现有活动创建片段

Rail片段缓存如何使您的应用受益,即阻止数据库调用?