Ruby on rails rails检查表单是否填写完整
我在rails视图中有一些信息,只有当用户在数据库中输入了所有个人详细信息(如姓名、姓氏、街道和城市)时,我才想显示这些信息。我现在可以这样做:Ruby on rails rails检查表单是否填写完整,ruby-on-rails,Ruby On Rails,我在rails视图中有一些信息,只有当用户在数据库中输入了所有个人详细信息(如姓名、姓氏、街道和城市)时,我才想显示这些信息。我现在可以这样做: if user.name && user.firstname && user.street && user.street # show stuff end 但我不认为这是非常优雅和“铁路方式”。有更简单、更智能的方法吗?您可以在html表单标记和模型类中的验证中使用required。请点击以下链接:
if user.name && user.firstname && user.street && user.street
# show stuff
end
但我不认为这是非常优雅和“铁路方式”。有更简单、更智能的方法吗?您可以在html表单标记和模型类中的验证中使用
required
。请点击以下链接:
在您的模型中
class User < ActiveRecord::Base
def has_required_fields?
self.name && self.first_name && self.address && ....
end
end
“rails方式”将是瘦控制器、胖模型。因此,在您的情况下,您希望在用户
模型中创建一个方法,然后在控制器中使用它
用户模型:
def incomplete?
name.blank? or firstname.blank? or street.blank?
end
unless user.incomplete?
# Show stuff
end
用户控制器:
def incomplete?
name.blank? or firstname.blank? or street.blank?
end
unless user.incomplete?
# Show stuff
end
在模型中:
ALL_REQUIRED_FIELDS = %w(name surname address email)
def filled_required_fields?
ALL_REQUIRED_FIELDS.all? { |field| self.attribute_present? field }
end
在控制器中:
@user.filled_required_fields?
如果所有字段都已填充,则返回true;否则返回false
看起来很优雅:)不,这不是我想做的。我想独立于表单过滤信息。