Rails已經引入了新的方法來驗證模型中的屬性。 當我使用驗證軌道3的自定義消息
validates :title, :presence => true
它的工作原理,但是當我嘗試添加自定義消息
validates :title, :presence => true,:message => "Story title is required"
產生一個錯誤
Unknown validator: 'message'
Rails已經引入了新的方法來驗證模型中的屬性。 當我使用驗證軌道3的自定義消息
validates :title, :presence => true
它的工作原理,但是當我嘗試添加自定義消息
validates :title, :presence => true,:message => "Story title is required"
產生一個錯誤
Unknown validator: 'message'
試試這個
validates :title, presence: { message: "Story title is required" }
其實,我做到了以更好的方式。如果你想從你應該在你的_form.htmk.erb視圖使用此消息刪除字段標題:
正如你可以在這個視圖中看到:
:<ul>
<% @article.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
通過將其更換
<ul>
<% @article.errors.each_with_index do |msg, i| %>
<li><%= msg[1] %></li>
<% end %>
</ul>
Htmk?爲什麼,我從來沒有 – 2015-11-09 14:36:09
您可以使用rails 3的HUMANIZED_ATTRIBUTES。 例如,在上述情況下,它會像:
HUMANIZED_ATTRIBUTES = {
:title => "story"
}
def self.human_attribute_name(attr, options={})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
它會給你的錯誤信息,用故事替代模型屬性稱號。
爲用條件的布爾自定義消息可能是:
validates :foo, inclusion: { in: [true, false], message: "cannot be blank" }, if: :bar?
如何去除:標題從上述錯誤信息?以上顯示爲「標題故事標題是必需的」。我想要「故事標題是必需的。」謝謝。 – Mayumi 2011-10-06 06:37:37
這個答案中'=> true'去了哪裏?沒有必要嗎? – dukedave 2012-02-23 23:15:50
@dukedave奇怪的是,這是沒有必要的。你可以將任何「真理」傳遞給「存在」。 – harm 2013-04-12 14:06:34