【问题标题】:Rails, getting information from htmlRails,从 html 获取信息
【发布时间】:2016-06-27 19:33:04
【问题描述】:

在我的 rails 应用中,我有 productorder 模型。假设产品控制器如下所示:

def index
  @products = Product.all
  @order = Order.new
end

我已将索引视图中的所有产品列为 div。当我点击它的 div 时,我想将产品的 id 分配给订单 (@order.product_id = product.id)

= @products.each do |product|
 .product
   = product.name
   = product.price

任何想法如何做到这一点:?谢谢!

【问题讨论】:

    标签: ruby-on-rails forms


    【解决方案1】:

    您需要触发另一个包含产品 ID 的请求,然后执行将 ID 分配给 @order.product_id 的新操作。在这种情况下,在您的 products#index 操作中使用 @order = Order.new 是没有意义的;相反,您可能需要一个用于产品内订单的嵌套资源,以及一个用于处理产品订单的新控制器。

    config/routes.rb

    resources :products do
      resources :orders
    end
    

    app/controllers/products_controller

    def index
      @products = Product.all
    end
    

    现在,products#index 视图可以链接到产品中新订单的嵌套路径。这将产生一个类似/products/123/orders/new的URL:

    app/views/products/index.html.shaml

    = @products.each do |product|
     .product
       = link_to new_product_order_path(product) do
         = product.name
         = product.price
    

    最后,您可以使用路由中指定的产品来呈现新的订单表单:

    app/controllers/orders_controller

    def new
      @product = Product.find(params[:product_id])
      @order = @product.orders.new
    end
    

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 2015-03-05
      • 2012-07-04
      • 2014-05-12
      相关资源
      最近更新 更多