我得到了关于强参数的错误消息我认为rails 4不再使用属性了。my toy.rb的代码是:
class Toy < ActiveRecord::Base
attr_accessible :name, :price, :vendor
validates :name, :presence => true
validates :price, :presence => true
validates :price, :numericality => true
validates :vendor, :presence => true
end
如何将其更改为强参数?
编辑:我用了一个不同的rb,我把它改成了员工,这就是我所拥有的:
class Employee < ActiveRecord::Base
params.require(:employee).permit(:first, :last, :salary, :salary, :ssn)
validates :first, :presence => true
validates :last, :presence => true
validates :salary, :presence => true
validates :salary, :numericality => true
validates :ssn, :presence => true
结束
它仍然告诉我“为定义的局部变量或方法'params'”
最佳答案
你需要的代码是
params.require(:toy).permit(:name, :price, :vendor)
你要把这个放在你的控制器里。通常,您会创建一个私有方法:
def create
Toy.create(toy_params)
end
private
def toy_params
params.require(:toy).permit(:name, :price, :vendor)
end
有关更多信息,请参见http://guides.rubyonrails.org/getting_started.html#saving-data-in-the-controller。
编辑
我想我原来的回答可能误导了你。代码进入控制器,而不是模型。
关于ruby-on-rails - Ruby中的强参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21590718/