我在我的rails視圖中有信息,我只想顯示用戶是否輸入了數據庫中的所有個人詳細信息,例如姓名,街道和城市。我現在可以做到這一點:rails檢查表單是否完全填寫
if user.name && user.firstname && user.street && user.street
# show stuff
end
但我不認爲這是非常優雅的「鐵軌方式」。有沒有更容易和更聰明的方法來做到這一點?
我在我的rails視圖中有信息,我只想顯示用戶是否輸入了數據庫中的所有個人詳細信息,例如姓名,街道和城市。我現在可以做到這一點:rails檢查表單是否完全填寫
if user.name && user.firstname && user.street && user.street
# show stuff
end
但我不認爲這是非常優雅的「鐵軌方式」。有沒有更容易和更聰明的方法來做到這一點?
您可以在模型類的html表單標籤和驗證中使用required
。也跟隨鏈接: http://guides.rubyonrails.org/active_record_validations.html http://www.w3schools.com/tags/att_input_required.asp
在模型中
class User < ActiveRecord::Base
def has_required_fields?
self.name && self.first_name && self.address && ....
end
end
而在你的控制器
if user.has_required_fields?
# do whatever you want
end
的 「軌道路」 將是瘦控制器,脂肪模型。因此,對於您的情況,您希望在User
型號中創建一個方法,然後在控制器中使用它。
用戶模式:
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。
看起來很優雅:)這是不是我想要做的
沒有。我想獨立於表單過濾信息。 – DonMB
我有更新答案。現在檢查。 –