Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4在接受\u嵌套的\u属性\u时遇到问题_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails 4在接受\u嵌套的\u属性\u时遇到问题

Ruby on rails Rails 4在接受\u嵌套的\u属性\u时遇到问题,ruby-on-rails,Ruby On Rails,我是rails新手,我正在尝试函数的accepts\u nested\u attributes\u。我正在创建一个库存系统,使用accepts_nested_attributes_for功能将多个订单详细信息附加到订单。订单还必须与门店位置相关联 我遇到的问题是正在创建订单,但没有数据传递到订单详细信息表 我的看法如下: 订单视图 如果您有任何帮助,我们将不胜感激 看起来一切对我来说都是对的-唯一的问题是@Pavan概述的问题,即当您使用时,您必须构建关联对象,以便它可以在表单中使用: #app

我是rails新手,我正在尝试函数的accepts\u nested\u attributes\u。我正在创建一个库存系统,使用accepts_nested_attributes_for功能将多个订单详细信息附加到订单。订单还必须与门店位置相关联

我遇到的问题是正在创建订单,但没有数据传递到订单详细信息表

我的看法如下:

订单视图

如果您有任何帮助,我们将不胜感激

看起来一切对我来说都是对的-唯一的问题是@Pavan概述的问题,即当您使用时,您必须构建关联对象,以便它可以在表单中使用:

#app/controllers/orders_controller.rb
Class OrdersController < ApplicationController
   def new
       @location = Location.find parmas[:id]
       @order = Order.find params[:id]
       @order.order_details.build
   end
end
虽然这看起来是您唯一的问题,但在OrderDetail模型的验证中可能会有其他问题,例如您没有遇到的问题


我和Pavan建议的唯一问题是,如果您不构建关联数据,表单上就不会显示字段。如果您的字段显示,则可能是另一个问题,该问题将在参数哈希中突出显示

尝试将此行添加到new method@order.order\u details.build。您可以发布从表单提交中收到的参数吗?嘿,Rick,我如何从表单提交中获取参数?好的,我将对此进行研究,看看能找到什么。上面的Rick让我发布表单提交中的参数。我怎么看这个?
<p class="fields">
    <%= f.label :item_id %><br />
    <%= f.text_field :item_id %></br>
    <%= f.label :quantity %></br>
    <%= f.text_field :quantity %></br>
    <%= f.label :cost %></br>
    <%= f.text_field :cost %></br>
    <%= f.label :discount %><br />
    <%= f.text_field :discount %><br />
    <%= f.hidden_field :_destroy %>
    <%= link_to_function "remove", "remove_fields(this)" %>
</p>
class OrdersController < ApplicationController

    def index
        @orders = Order.all
    end

    def show
        @order = Order.find(params[:id])
    end

    def new
        @order = Order.new
        @location = Location.find(params[:location_id])
    end

    def create
        @location = Location.find(params[:location_id])
        @order = @location.orders.create(order_params)  
        #@order =  @order.order_details.create

        if @order.save
            redirect_to @order
        else
            render :action => 'new'
        end
    end

    private
        def order_params
            params.require(:order).permit(:customer_id, order_detials_attributes: [:id, :item_id, :quantity, :cost, :discount])
        end

end
class Order < ActiveRecord::Base
    belongs_to :location
    has_many :order_details, :dependent => :destroy
    accepts_nested_attributes_for :order_details, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
end
class OrderDetail < ActiveRecord::Base
  belongs_to :order
end
resources :locations do
      resources :orders
end

resources :orders do
      resources :order_details
end
#app/controllers/orders_controller.rb
Class OrdersController < ApplicationController
   def new
       @location = Location.find parmas[:id]
       @order = Order.find params[:id]
       @order.order_details.build
   end
end