У меня есть новое приложение Rails 4, в котором я пытаюсь использовать Angular в первую очередь на интерфейсе.Rails 4 + Угловые вложенные атрибуты
У меня есть следующие:
Board.rb
class Board < ActiveRecord::Base
belongs_to :organization
has_many :warehouses
accepts_nested_attributes_for :warehouses
end
Warehouse.rb
class Warehouse < ActiveRecord::Base
belongs_to :board
end
В моем boards_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 в начале способа, PARAMS выглядеть так:
{"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"}
I «Я видел предложения использовать warehouses_attributes, а не просто« склады »в board_params, но это тоже не работает.
Мне было интересно, если кто-то столкнулся с подобной проблемой, и если да, то я могу настроить свой запрос или контроллер, чтобы принять и построить объект склада с соответствующим Советом. Возможно, мне не хватает корневого узла в объектах хранилища?
Большое спасибо!
не работает в Rails 4, так как по умолчанию используется strong_params. – Almaron