Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 Can';t以多步骤形式分配受保护的属性_Ruby On Rails_Nested Forms_Nested Attributes - Fatal编程技术网

Ruby on rails Can';t以多步骤形式分配受保护的属性

Ruby on rails Can';t以多步骤形式分配受保护的属性,ruby-on-rails,nested-forms,nested-attributes,Ruby On Rails,Nested Forms,Nested Attributes,我在做一件我认为很简单的事情,结果却很复杂。我按照这个步骤创建了一个多步骤表单。现在,我试图在Order视图中嵌套一个表单,以创建一个父Customer,如果其中还没有父Customer(请参见问题) 基本上,我希望创建一个客户来拥有一个订单,如果他们还不存在的话。我走错方向了吗 目前,我得到 无法批量分配受保护的属性:客户\u属性 当我有订单时,属于:客户。但对我来说这似乎最符合逻辑?我已经把代码放在下面了 客户模式: class Customer < ActiveRecord::Bas

我在做一件我认为很简单的事情,结果却很复杂。我按照这个步骤创建了一个多步骤表单。现在,我试图在
Order
视图中嵌套一个表单,以创建一个父
Customer
,如果其中还没有父
Customer(请参见问题)

基本上,我希望创建一个客户来拥有一个订单,如果他们还不存在的话。我走错方向了吗

目前,我得到

无法批量分配受保护的属性:客户\u属性

当我有订单时,
属于:客户
。但对我来说这似乎最符合逻辑?我已经把代码放在下面了

客户模式:

class Customer < ActiveRecord::Base
  attr_accessible :address_1, :address_2, :email, :name, :phone, :user_id

  belongs_to :user
end
视图/订单/新

%h1 New order

= form_for(@order) do |f|
  - if @order.errors.any?
    #error_explanation
      %h2
        = pluralize(@order.errors.count, "error")
        prohibited this order from being saved:
      %ul
        - @order.errors.full_messages.each do |msg|
          %li= msg
  = render "#{@order.current_step}_step", :f => f 
  = f.submit "Continue"
  = f.submit "Back", :name => "back_button" unless @order.first_step?
我试图嵌套窗体的局部视图:

.field
  = f.label :quantity    
  = f.text_field :quantity

%h3
  Customer details

=f.fields_for :customer do |builder|
  =builder.label :name
  =builder.text_field :name

  =builder.label :email
  =builder.text_field :email
希望这就是一切。我以前做过嵌套表单,但从未与多步骤表单结合使用。非常感谢您的帮助。

是的,您需要这两种帮助:

attr_accessible :customer_attributes, :customer_id, :format, :message, :phone, :quantity
accepts_nested_attributes_for :customer
attr\u accessible
告诉Rails哪些属性是允许的


接受\u嵌套的\u属性\u for
告诉rails将属性委托给其他类。

可能重复是的,对不起-我认为这与多步骤表单有关。不是,所以我接受了下面的答案。
.field
  = f.label :quantity    
  = f.text_field :quantity

%h3
  Customer details

=f.fields_for :customer do |builder|
  =builder.label :name
  =builder.text_field :name

  =builder.label :email
  =builder.text_field :email
attr_accessible :customer_attributes, :customer_id, :format, :message, :phone, :quantity
accepts_nested_attributes_for :customer