Simple_fields_for 茧不渲染
Simple_fields_for with cocoon not rendering
我在 Rails 上的 Ruby 中有一个一对多关联:
class Booking < ActiveRecord::Base
has_many :rides
accepts_nested_attributes_for :rides, allow_destroy: true
end
### and ###
class Ride < ActiveRecord::Base
belongs_to :bookings
end
预订和乘车视图以及控制器是脚手架。
我想在我的预订表格中添加一个“添加游乐设施”按钮:
= simple_form_for(@booking) do |f|
= f.error_notification
= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?
.form-inputs
.container
.row
.col-6
= f.input :first_name
= f.input :phone_number
.col-6
= f.input :last_name
= f.input :email
.col-12
= f.input :company
### here is the simple fields that does not work:
= f.simple_fields_for :rides do |ride|
= render 'rides/form', :f => ride
= link_to_add_association 'add ride', f, :rides
但是,没有显示任何内容,我也不知道为什么。
我尝试过的事情:
- 添加
rides_build
我试图将其添加到预订控制器
def new
@booking = Booking.new
@booking.build_rides
end
但它只给了我一个错误“undefined method `build_rides' for #Booking:0x000000010575c578”
- 添加
rides.build
def new
@booking = Booking.new
@booking.rides.build
end
这也给了我一条错误消息:“nil:NilClass 的未定义方法 `model_name”
- 仅添加
ride
def new
@booking = Booking.new
@booking.build
end
这只是没有做任何事情。没有报错,但是问题没有解决
- 将
ApplicationRecord
更改为ActiveRecord::Base
这为其他人解决了,但对我没有。
可能还想补充一点,在 simple_fields_for 内绝对不会渲染任何内容,甚至连简单的 h1
.
也不会渲染
选项 2 是正确的方法并且应该有效,但是您的 Ride
模型有错误,应该是
belongs_to :booking
注意:simple_fields_for
遍历嵌套子项,只要有 none,就不会渲染任何内容。
我在 Rails 上的 Ruby 中有一个一对多关联:
class Booking < ActiveRecord::Base
has_many :rides
accepts_nested_attributes_for :rides, allow_destroy: true
end
### and ###
class Ride < ActiveRecord::Base
belongs_to :bookings
end
预订和乘车视图以及控制器是脚手架。
我想在我的预订表格中添加一个“添加游乐设施”按钮:
= simple_form_for(@booking) do |f|
= f.error_notification
= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?
.form-inputs
.container
.row
.col-6
= f.input :first_name
= f.input :phone_number
.col-6
= f.input :last_name
= f.input :email
.col-12
= f.input :company
### here is the simple fields that does not work:
= f.simple_fields_for :rides do |ride|
= render 'rides/form', :f => ride
= link_to_add_association 'add ride', f, :rides
但是,没有显示任何内容,我也不知道为什么。
我尝试过的事情:
- 添加
rides_build
我试图将其添加到预订控制器
def new
@booking = Booking.new
@booking.build_rides
end
但它只给了我一个错误“undefined method `build_rides' for #Booking:0x000000010575c578”
- 添加
rides.build
def new
@booking = Booking.new
@booking.rides.build
end
这也给了我一条错误消息:“nil:NilClass 的未定义方法 `model_name”
- 仅添加
ride
def new
@booking = Booking.new
@booking.build
end
这只是没有做任何事情。没有报错,但是问题没有解决
- 将
ApplicationRecord
更改为ActiveRecord::Base
这为其他人解决了,但对我没有。
可能还想补充一点,在 simple_fields_for 内绝对不会渲染任何内容,甚至连简单的 h1
.
选项 2 是正确的方法并且应该有效,但是您的 Ride
模型有错误,应该是
belongs_to :booking
注意:simple_fields_for
遍历嵌套子项,只要有 none,就不会渲染任何内容。