错误:
未定义的方法
'sub_agriculture_sub_agriculture_sub_agriculture_sub_agriculture_sub_agriculture_sub_agricultures_path'为#
context
我正在建立学生评分系统,目前遇到资源问题(我认为)关系定义如下
Scorecard.rb
..
has_one :sub_agriculture
sub_agriculture.rb
..
belongs_to :scorecard
routes.rb
..
resources :scorecards
resources :sub_agricultures
通常在sub_agricultures_controller.rb
中使用;
def new
@sub_agriculture = SubAgriculture.new
end
...因为这导致
#<SubAgriculture id: nil, score: nil, created_at: nil, updated_at: nil, scorecard_id: nil>
我需要在一个条目表中为它们各自的记分卡创建其中几个。
但是仅选择scorecards
附加了sub_agriculture
。 (并非所有的atudent都以农业为主题)。因此,我在Scorecard
所在的pluck(:id)
上运行了一个查询,因为我认为使用整个active_record关系效率不高。然后,我得到这样的id数组; [1, 2, 3, 4, 5, 6]
。这是查询中的Scorecard_id的集合。
因此,每个ID;我需要为其创建一个sub_agriculture得分。对于这种情况;六个新的次农业实例。为此,我在sub_agricultures_controller.rb
def new
sc = Scorecard.scorecard_with_agriculture
@sub_agriculture = sc.map { |s|SubAgriculture.new(:scorecard_id => s) }
end
这会把这个数组吐出来;
=>[#<SubAgriculture id: nil, score: nil, created_at: nil, updated_at: nil, scorecard_id: 1>, #<SubAgriculture id: nil, score: nil, created_at: nil
, updated_at: nil, scorecard_id: 2>, #<SubAgriculture id: nil, score: nil, created_at: nil, updated_at: nil, scorecard_id: 3>, #<SubAgriculture id:
nil, score: nil, created_at: nil, updated_at: nil, scorecard_id: 4>, #<SubAgriculture id: nil, score: nil, created_at: nil, updated_at: nil, score
card_id: 5>, #<SubAgriculture id: nil, score: nil, created_at: nil, updated_at: nil, scorecard_id: 6>]
我想到的是什么; /sub_agriculture/new
操作使我遇到此错误
SubAgricultures#new中的NoMethodError#>
未定义的方法sub_agriculture_sub_agriculture_sub_agriculture_sub_agriculture_sub_agriculture_sub_agricultures_path'对于#
以新形式突出显示此特定行
<%= form_with(model: sub_agriculture, local: true) do |form| %>
我需要以一种形式创建六个亚农业。我要去哪里错了?
错误:#的未定义方法'sub_agriculture_sub_agriculture_sub_agriculture_sub_agriculture_sub_agriculture_sub_agricultures_path'>]
我认为您不应该为此使用“新”操作,因为您会摆脱常规和束缚,除非发生某些事情。我将创建两个新操作:bulk_new
和bulk_create
为这些操作添加路线: