Ruby on rails Rails 4应用程序中嵌套模型的表单存在问题

Ruby on rails Rails 4应用程序中嵌套模型的表单存在问题,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,好吧,过去几个小时我一直在努力想办法解决这个问题。我有一个rails电子商务应用程序。。。商店列出产品对象,当您将产品添加到购物车中时,会通过创建一个line_item对象来添加另一个对象。当您准备结帐时,购物车中的商品将成为订单。在这一点上,我试图允许客户向每一行项目提供一个页面url,即产品/服务将在外部网站上使用的[通过文本字段的表单]。为了实现这一点,我创建了一个新模型,名为Page\u url,它属于订单。这就是我一直失败的地方,我不断收到控制器错误未定义的方法“page_url”:

好吧,过去几个小时我一直在努力想办法解决这个问题。我有一个rails电子商务应用程序。。。商店列出产品对象,当您将产品添加到购物车中时,会通过创建一个line_item对象来添加另一个对象。当您准备结帐时,购物车中的商品将成为订单。在这一点上,我试图允许客户向每一行项目提供一个页面url,即产品/服务将在外部网站上使用的[通过文本字段的表单]。为了实现这一点,我创建了一个新模型,名为Page\u url,它属于订单。这就是我一直失败的地方,我不断收到控制器错误未定义的方法“page_url”:

表格如下:

<%= form_for(@order) do |f| %>

......

  <% @items.each do |item| %> 
   <td><a> Provide the URL the <%= item.product.title %> will be added to</a></td> 
    <div class="field">
     <%= f.fields_for @order, :page_url do |q| -%>
      <td> <%= q.label :page_url %>
      <%= q.text_field :page_url, size: 80 %>
    </td>
    <% end %>
   </div>
  <% end %>
  </div>

  <div class="actions">
    <%= f.submit t('.submit') %>
  </div>
<% end %>
Pages_url控制器是Rails 4生成的标准控制器

Order.rb:

class Order < ActiveRecord::Base
has_many :line_items, dependent: :destroy
has_many :page_urls, dependent: :destroy
# ...
validates :name, :address, :email, presence: true
validates :pay_type, inclusion: PAYMENT_TYPES

accepts_nested_attributes_for :page_urls
Page_url.rb:

class PageUrl < ActiveRecord::Base
belongs_to :order

非常感谢您的帮助,谢谢。我通常使用简单的表格来创建关联,效果非常好

这样你就能做到

他们有很好的文档,请检查这里:在Associations下

还有一点:

在订单模型中,我将指定类

has_many :page_urls, dependent: :destroy, :class_name => PageUrl
要使用简单表单创建嵌套表单,请参见:


希望这有帮助

工作得很有魅力。你是个救生员!
class PageUrl < ActiveRecord::Base
belongs_to :order
has_many :page_urls, dependent: :destroy, :class_name => PageUrl