0
我正在使用Ruby on Rails 3.1.0和Paperclip gem。我想改變正常行爲來驗證錯誤消息並將其添加到類對象。如何更改正常驗證行爲以便將消息添加到自定義錯誤鍵?
也就是說,User
類的無效實例
#<ActiveModel::Errors:0x0000010166cfb8 @base=#<User id: 1, firstname: "Sample firstname", lastname: "Sample lastname", avatar_file_name: "avatar_file.jpg",
...>, @messages={:avatar_file_size=>["is too big"]}>
我想有下面的輸出(注意(該:avatar_file_size
錯誤是關係到回形針寶石)的:avatar_file_size
錯誤哈希關鍵改爲:avatar
):
#<ActiveModel::Errors:0x0000010166cfb8 @base=#<User id: 1, firstname: "Sample firstname", lastname: "Sample lastname", avatar_file_name: "avatar_file.jpg",
...>, @messages={:avatar=>["is too big"]}>
在幾句話,我想這樣做是改變錯誤哈希關鍵與由Paperclip gem生成的錯誤消息相關。
我該怎麼做?
也許就可以直接做,在存在於User
模型validates
方法,在這個時候是:
validates_attachment_size :avatar,
:less_than => 4.megabytes,
:message => "is too big"
我不想更改驗證消息,但(從「:avatar_file_size」到「:阿凡達」)鍵名而正常情況下該消息將被插入陣列。 – Backo
你不會在'avatar_file_size'列上寫驗證器(因爲它是Paperclip的元列)。你寫了驗證:頭像。正如我上面所顯示的那樣,'paperclip' gem提供了這個開箱即用的功能。 –
我認爲你的具體問題可能通過上面的解決方案來解決。如果你想一般地改變字段名稱,那麼參考這個SO問題http://stackoverflow.com/questions/2521383。 –