Ruby on rails 使用initialize构建rails模型

Ruby on rails 使用initialize构建rails模型,ruby-on-rails,activerecord,model,Ruby On Rails,Activerecord,Model,我有一个这样的模型: class Phrase < ActiveRecord::Base attr_accessible :phrase, :emotion, :category end 我觉得我应该在我的模型上使用initialize方法,或者在我的模型上创建一个新方法来构建它们。上面的方法看起来很糟糕,尤其是当我开始构建具有20多个属性的模型时 关于构建模型是否有最佳/更好的实践?上述控制器代码是否确实存在于模型中的某个位置?由于您的模型允许通过attr\u accessible

我有一个这样的模型:

class Phrase < ActiveRecord::Base
  attr_accessible :phrase, :emotion, :category
end
我觉得我应该在我的模型上使用initialize方法,或者在我的模型上创建一个新方法来构建它们。上面的方法看起来很糟糕,尤其是当我开始构建具有20多个属性的模型时


关于构建模型是否有最佳/更好的实践?上述控制器代码是否确实存在于模型中的某个位置?

由于您的模型允许通过
attr\u accessible
大量分配这些属性,您只需将哈希传递给
new

Phrase.new(values)
您还可以使用带有散列选项的
find\u或\u create\u by

Phrase.find_or_create_by_phrase(values[:phrase], values)
或者如果您使用的是强参数

def create
  @phrase = Phrase.new(phrase_params)
end

private

  def phrase_params
    params.require(:phrase).permit(:phrase, :emotion, :category)
  end
end
 def create
    @phrase = Phrase.new(params[:phrase])
  end
def create
  @phrase = Phrase.new(phrase_params)
end

private

  def phrase_params
    params.require(:phrase).permit(:phrase, :emotion, :category)
  end
end