2017-10-27 4 views
1

Rails 5アプリでFriendlyId & Ancestry Gemを使用しています。私はプライマリサービスのサイロマーケティングページを作成しており、別々の祖先の親パス上にある重複するスラッグを作成する必要があります。私は参照のために以下の初期シードファイルを含めました。あなたが見ることができるようにFriendlyIdとAncestry Gem in Railsで重複したスラッグを許可する5

、私のルート・パスは、次のとおりです。

www.mysite.com 
www.mysite.com/events 
www.mysite.com/events/san-diego 
www.mysite.com/events/orange-county 
www.mysite.com/events/los-angeles 
www.mysite.com/events/riverside 

**ここにいる私は必要な重複ナメクジ**ナメクジが重複しているが、あなたが見ることができるように

www.mysite.com/events/san-diego/birthday-parties 
www.mysite.com/events/orange-county/birthday-parties 
www.mysite.com/events/los-angeles/birthday-parties 
www.mysite.com/events/riverside/birthday-parties 
... 

、彼らは別の親のパスから離れて座っています。親に基づいてスラッグを検証するにはどうしたらよいですか?それで、重複するスラッグを作成することができますか?

**デシベル/ seeds.rb **

home = Page.create(title: 'Home') 

# home/events 
events = Page.create(title: 'Events', parent: home) 

# home/events/cityPage 
san_diego = Page.create(title: 'San Diego', parent: events) 
orange_county = Page.create(title: 'Orange County', parent: events) 
los_angeles = Page.create(title: 'Los Angeles', parent: events) 
riverside = Page.create(title: 'Riverside', parent: events) 

# home/events/san-diego/eventPage 
Page.create(title: 'Birthday Parties', parent: san_diego) 
Page.create(title: 'School Events', parent: san_diego) 
Page.create(title: 'Church Events', parent: san_diego) 
Page.create(title: 'Corporate Events', parent: san_diego) 
Page.create(title: 'Social Events', parent: san_diego) 
Page.create(title: 'Community Events', parent: san_diego) 

# home/events/orange-county/eventPage 
Page.create(title: 'Birthday Parties', parent: orange_county) 
Page.create(title: 'School Events', parent: orange_county) 
Page.create(title: 'Church Events', parent: orange_county) 
Page.create(title: 'Corporate Events', parent: orange_county) 
Page.create(title: 'Social Events', parent: orange_county) 
Page.create(title: 'Community Events', parent: orange_county) 

# home/events/los-angeles/eventPage 
Page.create(title: 'Birthday Parties', parent: los_angeles) 
Page.create(title: 'School Events', parent: los_angeles) 
Page.create(title: 'Church Events', parent: los_angeles) 
Page.create(title: 'Corporate Events', parent: los_angeles) 
Page.create(title: 'Social Events', parent: los_angeles) 
Page.create(title: 'Community Events', parent: los_angeles) 

# home/events/riverside/eventPage 
Page.create(title: 'Birthday Parties', parent: riverside) 
Page.create(title: 'School Events', parent: riverside) 
Page.create(title: 'Church Events', parent: riverside) 
Page.create(title: 'Corporate Events', parent: riverside) 
Page.create(title: 'Social Events', parent: riverside) 
Page.create(title: 'Community Events', parent: riverside) 

**重複ナメクジに追加されたハッシュを示すデータベースのスクリーンショット**あなたがvalidates_uniqueness_ofを使用することができます

enter image description here

答えて

1

スコープ付き。

例:

validates_uniqueness_of :slug, scope: :parent_id 

この方法をやって、それがこのレコードの一意性を検証しますが、PARENT_IDが異なる

であれば、同じスラグを許可します
関連する問題