0

したがって、私はまだ Rails フレームワークに慣れていません。

リソースのビルド時に問題が発生しました。

project_materials の JSON 配列への AJAX クエリを使用しPOSTて、 line_items 関連付けのあるカートに移動しています

(私は Agile Web Development Book に従っています)。

これは私が得るエラーです
ActiveModel::MissingAttributeError - can't write unknown attribute project_materials_id':

これが私のコントローラーの外観です。in line_items コントローラー

# POST /line_items
# POST /line_items.json

def create

#materialsArray = params[:materials]
project_id = params[:project_id]
@cart = current_cart
#pm = ProjectMaterials.find(1)
#lm = @cart.line_items.build(:project_materials => pm)
#lm.save
array = JSON::parse(materialsArray)

#puts array

array.each do |key|
  pm = ProjectMaterials.find_by_svg_id(key['id'])
  lm = @cart.line_items.create!(:project_materials => pm)
  lm.save
end

render :js => "window.location = '#{project_path(Project.find(project_id))}'"

end
4

2 に答える 2

0

@cart オブジェクトを調べて、そのオブジェクトに accept_nested_attributes_for line_items を設定していることを確認する必要があるようです。

于 2013-10-19T13:09:15.023 に答える
0

私は大きな間違いを犯しました。データベースで「project_materials_id」を「project_material_id」とラベル付けしました。

于 2013-10-19T14:10:02.320 に答える