你能为表单制作一个可选的模型属性吗?

时间:2017-04-24 13:44:52

标签: ruby-on-rails

是否可以为特定表单创建所需的属性?

该字段在模型中可以为空,目前没有验证设置,我希望保持这种方式。

但是在1表格中,我想让这个领域成为必需的。

如果没有为此创建单独的模型,这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用ActionController s require作为使用的参数,如下所示:

def person_params
  params.require(:person).permit(:name).tap do |person_params|
    person_params.require(:name) # SAFER
  end 
end

http://api.rubyonrails.org/classes/ActionController/Parameters.html#method-i-require

这对你有帮助吗?

答案 1 :(得分:0)

我知道您不想触摸模型,但您可以进行非侵入性的条件验证

validates_presence_of :your_attribute, :if => :from_specific_form? 

并创建一些适用于此

的方法
private

def from_form
  @from_specific_form = true
end

def from_specific_form?
  @from_specific_form
end

然后,当你想要验证工作时,只需做这样的事情

xyz = YourModel.new
xyz.from_form