私はまだレールが新しく、モデル間で検証するのに問題があります。
私は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
ベストアンサー
まず、 before_create:generate_slug
行と
before_update:generate_slug
行を取り除き、
before_validation :generate_slug
あなたの一意性の検証は、その後動作するかもしれません。