Недавно я обновился до rails 4.2 и обнаружил, что дружественный идентификатор перестал работать. Не уверен, что это ошибка или я буквально просто не могу использовать дружественный идентификатор.
После обновления мои тесты начали давать сбой, например, у меня есть следующий тест:
context "Fiendly ID" do
it "should find by name" do
permission = FactoryGirl.create(:can_read)
Xaaron::Permission.find(permission.permission_name.parameterize).should_not eql nil
end
end
Этот тест никогда не давал сбоев, но теперь он выплевывает:
Failure/Error: Xaaron::Permission.find(permission.permission_name.parameterize).should_not eql nil
ActiveRecord::RecordNotFound:
Couldn't find Xaaron::Permission with 'id'=can_read2
# ./.bundle/gems/gems/activerecord-4.2.0/lib/active_record/core.rb:154:in `find'
# ./spec/models/xaaron/permission_spec.rb:21:in `block (3 levels) in <top (required)>'
Имея это в виду, вот моя модель:
module Xaaron
class Permission < ActiveRecord::Base
extend FriendlyId
friendly_id :permission_name, use: [:slugged, :finders, :history]
has_many :roles_permissions
has_many :roles, :through => :roles_permissions
validates :permission_name, presence: true, uniqueness: true
def should_generate_new_friendly_id?
permission_name_changed?
end
end
end
обратите внимание на :finders
. Я использую 5.0.3 для Дружественного ID. Это что-то новое с активной записью или я не смог использовать Дружественный ID?