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

Ruby on rails 无法在Rails 4中批量分配受保护的属性,ruby-on-rails,Ruby On Rails,我不明白我的代码Rails 4有什么问题: 来自post的参数: {:name => "name"} 新行动: m=Menu.new(params.permit(:name)) 这段代码的最后一行为Menu:name生成不能批量分配受保护的属性。在Rails 4中使用强参数的标准方法是在控制器中创建一个私有方法,该方法定义允许的参数。像这样: def new @m = Menu.new(menu_params) end private def menu_params par

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

来自post的参数:

{:name => "name"}
新行动:

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

这段代码的最后一行为Menu:name生成不能批量分配受保护的属性。在Rails 4中使用强参数的标准方法是在控制器中创建一个私有方法,该方法定义允许的参数。像这样:

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

private

def menu_params
  params.require(:menu).permit(:name, :etc, :etc)
end
然后,可以从模型中删除attr_可访问行

见:


您是否从Rails 3迁移并使用受保护的属性gem?是的。我可以将受保护的_属性与强参数一起使用吗?可以,但建议将属性保护逻辑从受保护的_属性迁移到强参数。如果您想同时保留这两个属性,则必须在菜单模型中添加attr_accessible:name,但我会删除受保护的_属性,并在每个操作中应用强_参数,因为这是Rails 4中的首选方法。