Дружественный ID не работает с Rails 4.2?

Недавно я обновился до 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?


person TheWebs    schedule 05.01.2015    source источник


Ответы (1)


Модуль finders совместим с Rails 4.2. только в 5.1. версии (еще не выпущенной). Вы, конечно, уже можете протестировать версию, но имейте в виду, что она все еще находится в стадии бета-тестирования.

gem "friendly_id", "5.1.0.beta.1"
person Jiří Pospíšil    schedule 05.01.2015