ruby-on-rails - Ruby 中的强参数

标签 ruby-on-rails ruby strong-parameters

我收到有关强参数的错误消息。我认为只是rails 4不再使用属性了。我的 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)

您将把它放入您的 Controller 中。通常,您创建一个私有(private)方法:

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了解更多信息。

编辑 我想我原来的答案可能误导了你。代码位于 Controller 中,而不是模型中。

关于ruby-on-rails - Ruby 中的强参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21590718/

相关文章:

ruby-on-rails - 错误 : ERROR: argument of WHERE must be type boolean, 未键入整数

ruby-on-rails - 使用 Mongoid 进行不区分大小写的排序

ruby - 我如何重构调用不同函数但对它们的响应执行相同操作的 ruby​​ 代码?

ruby-on-rails - SimpleForm 不带 for(非模型表单)

ruby - 是否可以(甚至推荐)在 ChefSpec 中模拟 Ruby require 语句?

ruby - 如何只匹配某些字符与正则表达式?

ruby-on-rails - 强参数中嵌套对象中的Rails 4嵌套数组

ruby-on-rails - Rails Strong Parameters - 如果我的字段之一是可选的怎么办?

ruby-on-rails - Rails - 如何使用子对象的嵌套属性和强参数填充父对象 id?

ruby-on-rails - Rails 4.1 和 4.2 之间 ActiveRecord Setter 的区别?