无法在Rails 4中批量分配受保护的属性

Ale*_*ack 6 ruby-on-rails

我无法理解我的代码有什么问题(Rails 4):

来自帖子的参数:

{:name => "name"}
Run Code Online (Sandbox Code Playgroud)

新动作:

m=Menu.new(params.permit(:name))
Run Code Online (Sandbox Code Playgroud)

此代码的最后一行生成"无法为菜单:名称大量分配受保护的属性"

Chr*_* C. 13

在Rails 4中使用strong_parameters的标准方法是在控制器中创建一个定义允许的参数的私有方法.像这样:

def new
  @m = Menu.new(menu_params)
end

private

def menu_params
  params.require(:menu).permit(:name, :etc, :etc)
end
Run Code Online (Sandbox Code Playgroud)

然后,您可以从模型中删除attr_accessible行.

看到:

http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html http://railscasts.com/episodes/371-strong-parameters