ruby on rails - How to configure sequence separator with underscore `_` of friendly_id gem -
i using friendly_id gem version 3.3.3.0
in rails 3.2
i have defined friendly id following :-
class user < activerecord::base has_friendly_id :name, use: :slugged, sequence_separator: '_', max_length: 32 end
i have used sequence separator _
but when execute query on console separating using _
(underscore) works fines --
(double dash)
i have 3 user cached_slug user_1
user_2
, user_3
when trying find records cached slug generates following query.
using - _
(underscore)
for - `user_1` user.find("user_1") select sluggable_id slugs ((slugs.sluggable_type = 'user' , slugs.name = 'user_1' , slugs.sequence = 1)) - `user_2` user.find("user_2") select sluggable_id slugs ((slugs.sluggable_type = 'user' , slugs.name = 'user_2' , slugs.sequence = 1)) - `user_3` user.find("user_3") select sluggable_id slugs ((slugs.sluggable_type = 'user' , slugs.name = 'user_3' , slugs.sequence = 1))
its not taking sequence from cached slug.
using - --
(double dash)
for - `user--1` user.find("user--1") select sluggable_id slugs ((slugs.sluggable_type = 'user' , slugs.name = 'user' , slugs.sequence = 1)) - `user--2` user.find("user--2") select sluggable_id slugs ((slugs.sluggable_type = 'user' , slugs.name = 'user' , slugs.sequence = 2)) - `user--3` user.find("user--3") select sluggable_id slugs ((slugs.sluggable_type = 'user' , slugs.name = 'user' , slugs.sequence =3))
--
(double dash) identifies sequence properly
let me know if missing include.
**update - **
i debug gem code , found refers sequence_separator
--
instead of have defined in model _
class string def parse_friendly_id(separator = nil) separator ||= friendlyid::configuration::defaults[:sequence_separator] name, sequence = split(/#{regexp.escape(separator)}(\d+)?\z/) return name, (sequence ||= 1).to_i end end
Comments
Post a Comment