0
當我試圖創建這些記錄時,如何從具有多個記錄的交叉引用表中返回錯誤消息?我想這樣的:rails 3自定義驗證錯誤消息在連接表中,怎麼樣?
## activity_set.rb
class ActivitySet < ActiveRecord::Base
has_many :activity_set_lessons
has_many :lessons, :through => :activity_set_lessons
validates :name, :presence => true
def activity_set_lessons=(data)
data.each_with_index do |v, i|
activity_set_lessons.build(
:lesson_id => v[:lesson_id],
:sort_order => i,
:weight_percentage => v[:weight_percentage]
)
end
end
end
## activity_set_lesson.rb
class ActivitySetLesson < ActiveRecord::Base
belongs_to :activity_set
belongs_to :lesson
validates :lesson_id, :presence => true
validates_each :weight_percentage do |record, attr, value|
record.errors.add :base, "woot" if value.blank?
end
end
這是請求數據:從@activity_set
## params[:activity_set]
"activity_set" => {
"name" => "hshshshs",
"keywords" => "",
"activity_set_lessons" => [
{"weight_percentage" => "", "lesson_id"=>"4"},
{"weight_percentage" => "", "lesson_id"=>"5"}
]
}
錯誤消息,當我做#save:
{
"errors":{
"activity_set_lessons":["is invalid","is invalid"]
},
"full_messages":[
"Activity set lessons is invalid","Activity set lessons is invalid"
]
}
我總是得到同樣的錯誤即使我在連接表中添加一個自定義的消息。我怎樣才能返回如下消息:「woot 1 is wrong」或類似的東西,每次驗證?
謝謝。
酷,它的工作原理:)。 – nebiros 2012-02-25 21:56:41