gpt4 book ai didi

ruby-on-rails - Rails 茧嵌套形式 : undefined method `reflect_on_association' for NilClass:Class

转载 作者:行者123 更新时间:2023-12-05 00:57:10 24 4
gpt4 key购买 nike

我正在尝试在我的 rails 4 应用程序中构建一个包含嵌套资源的表单。我正在使用茧 gem 。每个步骤都有子步骤,我希望允许用户向表单添加任意数量的子步骤,并且他/她愿意。

步骤.rb

class Step < ActiveRecord::Base
has_many :substeps
accepts_nested_attributes_for :substeps

子步骤.rb
class Substep < ActiveRecord::Base
belongs_to :step

表格代码
<%= form_for :step, :url => steps_path do |f| %>
<%= text_field(:step, :title, :value => '', class: 'fly-input input_info', placeholder: 'Process Title', id: 'step_form_title') %>
<%= text_field(:step, :description, :value => '', class: 'fly-input input_info', placeholder: 'Process Description', id: 'step_form_description') %>
<%= hidden_field :step, :known %>
<%= hidden_field_tag :experiment, @experiment.id %>
<%= f.fields_for :substep do |ff| %>
<%= ff.text_field :description %>
<% end %>
<%= link_to_add_association 'Add substep', f, :substeps %>
<%= f.submit "Done", class: "main_button" %>
<% end %>

当我这样做时,我收到一个错误读数:
“NilClass:Class 的未定义方法‘reflect_on_association’”在这一行
<%= link_to_add_association 'Add substep', f, :substeps %>

对我的问题有什么想法吗?

编辑
根据 Pavan 的建议将 text_field 更改为 ff.text_field

最佳答案

Cocoon 期望您像您一样提供表单对象作为第二个参数,但也期望第二个参数实际上将 Rails 模型实例作为属性 f.object .

您的表单仅使用模型名称创建,因此 form_for :step所以 Cocoon 提出了一个异常(exception)。

要解决此问题,您应该将其更改为 form_for @step哪里@step可以 Step.new或任何其他 Step实例。

关于ruby-on-rails - Rails 茧嵌套形式 : undefined method `reflect_on_association' for NilClass:Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com