0

Show標準の REST URL ではなく、サブドメインを介してアクセスされる Railsのモデル ( ) があります。ファイルapp/helpers/url_helper.rbには、次のメソッドがあります。

def show_url(show)
  root_url(subdomain: show.subdomain)
end

コントローラーでは、これは完全に機能します。私はそれをテストすることができ、期待どおりにショーのをputs show_url(@show)出力します: 。ただし、統合テストでは、このメソッドは機能せず、代わりに Rails によって生成されたデフォルトのメソッドが使用されます。そこを走ると、 . 統合テストでこのカスタム URL ヘルパーを使用するにはどうすればよいですか?subdomainhttp://test.example.computs show_url(@show)http://example.com

編集:

routes.rbこのサブドメインに関するセクション:

constraints(lambda do |request|
    request.subdomain.present? && request.subdomain != 'www'
  end) do
  get '/' => 'shows#show', as: :show
  get '/edit' => 'shows#edit', as: :edit_show
end

これは、サブドメイン マッチングに関する Railscast に大まかに基づいています。

4

2 に答える 2

1

デフォルトの「表示」アクションなしでそのルートを定義してみてください:

# config/routes.rb
resources :show, except: :show

あなたのモデルは と呼ばれているので少し混乱しているように聞こえますShowが、それが行っているのは、「表示」を除くすべての標準の安らかなルート (インデックス、新規、作成、編集、更新、削除) を定義することです。

または別の方法:

resources :show, only: %w(index new create edit update delete)
于 2015-07-20T16:04:48.213 に答える
0

Show モデルのリファクタリングと名前の変更を実際に検討したいと思います。

于 2015-07-20T16:14:04.777 に答える