6

我不明白我的代码有什么问题(Rails 4):

来自帖子的参数:

{:name => "name"}

新动作:

m=Menu.new(params.permit(:name))

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

4

1 回答 1

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

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

看:

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

于 2013-08-23T21:28:57.157 回答