2011-11-13 19 views
2

私はまだレールが新しく、モデル間の検証に問題があります。2つのモデル間の一意性を確認するレール

私は2つのモデル、アーティストと曲が多対多関係に関連付けられています。私は歌モデルurl_slugが各アーティストのためにユニークであることをチェックする検証をしたいと思います。私は:スコープを使用してみましたが、関連アーティスト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 

答えて

0

最初の事はbefore_create :generate_slugbefore_update :generate_slugラインを退治しようとすると、

before_validation :generate_slug 

あなたに置き換えるです一意性の検証がそれで機能するかもしれません。

関連する問題