我有一个新的 Rails 4 应用程序,我试图主要在前端使用 Angular。
我有以下内容:
董事会.rb
class Board < ActiveRecord::Base
belongs_to :organization
has_many :warehouses
accepts_nested_attributes_for :warehouses
end
仓库.rb
class Warehouse < ActiveRecord::Base
belongs_to :board
end
在我调用的 create 方法中的 board_controller.rb 中
@board = @organization.boards.build(board_params) # Organizations are a separate model that have many boards
在哪里
def board_params
params.require(:board).permit(:date, :organization_id, :warehouses => [:name])
end
如果我在方法的开头放置一个 binding.pry,参数看起来像这样:
{"board"=>
{"date"=>"2013-06-02T15:12:16.554Z",
"warehouses"=>
[{"name"=>"Tidewater",
"grades"=>nil,
"new_grade"=>
{"name"=>"New Grade",
"total"=>0,
"available"=>"2013-06-02T15:12:16.554Z"}},
{"name"=>"MIT",
"grades"=>nil,
"new_grade"=>
{"name"=>"New Grade",
"total"=>0,
"available"=>"2013-06-02T15:12:16.554Z"}}]},
"action"=>"create",
"controller"=>"boards",
"organization_id"=>"1",
"format"=>"json"}
但是,调用 board_params 会直接响应:
Unpermitted parameters: warehouses
=> {"date"=>"2013-06-02T15:12:16.554Z"}
我已经看到了在 board_params 中使用warehouses_attributes 而不仅仅是“仓库”的建议,但这似乎也不起作用。
我想知道是否有人遇到过类似的问题,如果是的话..我如何调整我的请求或控制器以接受并使用他们各自的董事会构建仓库对象。也许我在仓库对象中缺少一个根节点?
非常感谢!