我已經有一個前提作品網站:回報率:friendly_id獨特的用戶
example.com/user_id/news/slug-for-article
默認情況下,我已經啓用的文章獨特的蛞蝓,但是我想有每個用戶獨特的蛞蝓,覆蓋所有用戶。
非唯一性通過使用@user.articles.friendly.find(param)
來處理。
我該如何設置它以確保唯一性,但僅限於定義的屬性?
我已經有一個前提作品網站:回報率:friendly_id獨特的用戶
example.com/user_id/news/slug-for-article
默認情況下,我已經啓用的文章獨特的蛞蝓,但是我想有每個用戶獨特的蛞蝓,覆蓋所有用戶。
非唯一性通過使用@user.articles.friendly.find(param)
來處理。
我該如何設置它以確保唯一性,但僅限於定義的屬性?
我會用friendly_id。
它應該是這樣的:
class Article < ActiveRecord::Base
extend FriendlyId
belongs_to :user
friendly_id :name, use: :scoped, scope: :user, slug_column: :permalink
萬一有人取走了同一篇文章的名字,friendly_id
將計算slug
不會與現有的衝突。
因此,舉例來說:
/user_id/news/hello
/user_id/news/hello-2
如果你不想使用那個寶石,你可以使用Rails
驗證。
它會是這樣的:
class Article < ActiveRecord::Base
extend FriendlyId
belongs_to :user
validates_uniqueness_of :permalink, scope: :user_id
我希望它有幫助。
AIF你必須通過的has_many:關聯中,你可以在塞存儲在第三個模型......這是在那裏你可以存儲用戶唯一的文章和兩個數據的唯一地方。
@user.articles_users.friendly.find(param).each do |association|
Articles.find(association.article_id)
end
謝謝,但這是我已經在做的。我需要的鼻涕蟲是唯一取決於關係 – Ashley
和'validates_uniqueness_of:永久鏈接,範圍:user_id'不起作用? – etagwerker