0

Rails アプリケーションの routes.rb ファイルで ActiveRecord を使用する方法を知りたいです。

動的に有効または無効にできるオプションのモジュールをいくつか作成しています。モジュールが無効になっている場合はルートが存在しないようにするため、オプションのルートに関する条件を作成しました。開発中は正常に動作しますが、テスト環境では、フィクスチャが適切に設定されていても、クエリは nil を返します。

を使用しているときに、フィクスチャを使用するためのテストを作成するにはどうすればよいOptionalModule.allですか?

ありがとう !

ここに私のroutes.rbファイルがあります:

Rails.application.routes.draw do
  optional_modules = OptionalModule.all # this returns nil in test mode

  # by_name is a scope defined in the model
  if optional_modules.by_name('GuestBook').enabled?
    get 'toggle_guest_book_validated/:id', to: 'admin/guest_books#toggle_guest_book_validated', as: :toggle_guest_book_validated
  end
end

私の備品

guest_book:
  name: GuestBook
  enabled: true

私のプロジェクト

  • レール 4.2
  • ルビー 2.2.0
4

1 に答える 1

1

ルートを動的に有効または無効にしたい場合は、フラグをデータベース状態に保存する代わりに、環境変数を使用してフラグを設定しようとします (リレーショナル データベースの場合、グローバル フラグを保存する最も効率的な場所ではありません)。とりあえず)。次に、routes.rb各環境変数の存在/真実性を確認できます。

if ENV['MODULE_GUEST_BOOK']
  # enable fancy routes
end
于 2015-06-29T00:07:13.143 に答える