【发布时间】:2011-11-13 00:00:05
【问题描述】:
我还是 Rails 新手,在跨模型验证时遇到问题。
我有两个模型,艺术家和歌曲与多对多关系相关联。我想在歌曲模型中进行验证,以检查歌曲 url_slug 对于每个艺术家都是独一无二的。我曾尝试使用 :scope 但我似乎无法调用相关的艺术家 ID。
我在这里迷路了,因此我们将不胜感激。
谢谢,
这是我的歌曲模型:
class Song< ActiveRecord::Base
has_and_belongs_to_many:artists
#creates Url Slug
#before_create :generate_slug
before_update :generate_slug
validates_uniqueness_of :song_url_slug, :scope => self.artist.id
protected
def generate_slug
self.song_url_slug = song_name.gsub(/\W+/, ' ').strip.downcase.gsub(/\ +/, '-')
end
#def url_slug_uniqueness
#artist_song = self.song_name.find(:artist_id])
#if self.exists?(:conditions => {:song_name => artist_song})
# errors.add(:song_name, :name_taken, :song_name=> "#{artist_song}1")
#end
# end
#end
【问题讨论】:
标签: ruby-on-rails validation model