0

ええと、これまでで最も紛らわしい検証エラーです。Friendlyロールのモデルが次のように見えるという言葉を使用していないことを考えると、

class Role < ActiveRecord::Base
  validates :role, presence: true

  extend FriendlyId
  friendly_id :role, use: [:slugged, :history]
end

(はい、適切な移行があります..それらも見てみましょう...)

class AddSlugToRoles < ActiveRecord::Migration
  def change
    add_column :roles, :slug, :string
    add_index :roles, :slug
  end
end

では、工場の女の子を作成しましょう

FactoryGirl.define do
  factory :adminRole, :class => 'Role' do
    role "Admin"
  end

  factory :userRole, :class => 'Role' do
    role "User"
  end  
end

最後に仕様を書き、ロールを作成できるようにします。

  context "Validation checks" do
    it "validates a role object" do
      FactoryGirl.build(:adminRole).should be_valid
    end
  end

次に、次の失敗メッセージが表示されます。

  1) Role Validation checks validates a role object
     Failure/Error: FactoryGirl.build(:adminRole).should be_valid
       expected #<Role id: nil, role: "Admin", created_at: nil, updated_at: nil, slug: "admin"> to be valid, but got errors: Friendly is reserved
     # ./spec/models/role_spec.rb:14:in `block (3 levels) in <top (required)>'

申し訳ありません、もう一度おっしゃっていただけますか。という言葉をどこで使用していますFriendlyか? そうです、そうではありません。助けてください。

4

1 に答える 1

1

単語の使用の順番はadmin予約されていると見なされます。のような他の言葉もたくさんあります

config.reserved_words = %w(new edit index session login logout users admin stylesheets assets javascripts images)

それも予約されています。

于 2013-09-30T03:00:08.750 に答える