0

エリアと店舗の 2 つのモデルがあり、同じパスから実行したいと考えています: www.mysite.com/the_name_of_the_thing_here

ここでやりたいことは、area テーブルを調べて一致するものを探し、area ページを表示し、一致しない場合は、store テーブルを調べて、代わりに store ページを表示することです。このロジックをどこに配置するか (コントローラーの領域に?) と、コントローラーを切り替える方法がよくわかりません。何か案は?

ありがとう

4

1 に答える 1

1

そのためにコントローラーアクションを使用できると思います

@area = Area.find_by_name(params[:name])
@store = Store.find_by_name(params[:name])
if @area
  redirect_to area_path(@area)
elsif @store
  redirect_to store_path(@store)
else
  redirect_to help_url
end

コンテンツを変更したい場合は、変数を定義する他のコントローラーメソッドのみを作成します。

@thing = Area.find_by_name(params[:name]) || Store.find_by_name(params[:name])

表示するためにそれを渡します

<%= thing.name %>
于 2012-10-03T10:17:23.747 に答える