我已经有一个前提作品网站:回报率: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