加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails fields_for表单没有显示

发布时间:2020-12-17 01:25:31 所属栏目:百科 来源:网络整理
导读:products_controller.rb def new @product = Product.new @product.build_discountend product.rb has_many :discounts,:dependent = :destroyaccepts_nested_attributes_for :discountsattr_accessible :discounts_attributes discount.rb belongs_to :prod
products_controller.rb

def new
  @product = Product.new
  @product.build_discount
end

product.rb

has_many :discounts,:dependent => :destroy
accepts_nested_attributes_for :discounts
attr_accessible :discounts_attributes

discount.rb

belongs_to :product

_edit_product.html.erb

<%= form_for(product,:html => { :multipart => true  },:remote => true) do |f| %>
    // STUFF
    <%= f.fields_for :discounts do |discount_form| %>
       //does not show up
    <% end %>
<% end %>

fields_for块中的内容未显示.但是,如果我将has_many:discount更改为has_many:discount,则表单显示(当我尝试提交时获取批量分配错误).

关于为什么表单不在fields_for块中呈现以及为什么在我更改复数时它会呈现的任何想法?

解决方法

你想要很多折扣或一个折扣吗?

@ product.build_discount用于has_one关联,但其余代码用于has_many

如果您想要很多折扣,请将其更改为@ product.discounts.build

否则,如果您只想享受一次折扣,请更改以下内容:

f.fields_for:discount do | discount_form |和accepts_nested_attributes_for:单数折扣.

@ products.discounts.build将无法工作,因为您无法从对象集合中获取关联.例如:

@products = Product.all
@discount = @products.discounts.build
# This won't work! You'll get an error

@product = Product.find(params[:id])
@discount = @product.discounts.build
# This will work,since you're running it on a single instance of Product

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读