0

こんにちは、Rails 初心者です。さまざまなビュー (ホテル、カフェ、博物館) がある static_pages というコントローラーがあります。私は現在、routes.rbでこれを行っています

match '/school',    to: 'static_pages#school',    via: 'get'
match '/hotel',    to: 'static_pages#hotel',    via: 'get'
match '/museum',   to: 'static_pages#museum',   via: 'get'
match '/peace', to: 'static_pages#peace', via: 'get'
match '/cafe',  to: 'static_pages#cafe',            via: 'get'
match '/investor',  to: 'static_pages#investor',            via: 'get'

「静的ページコントローラーで、ビュー名を特定のURLにバインドした場合」はどうすればよいですか。これらの 6 行を削除して、コントローラーの各メソッドに対してルートを生成するという 1 行に変更するだけです。

ここで行う特別なトリックはありますか?

4

1 に答える 1

0

routes.rb は通常の ruby​​ ファイルなので、次のようなことができます。

['school', 'hotel', 'museum', etc].each do |route|
  match route, to: "static_pages##{route}", via: 'get'
end

短くしたい場合。

編集:

ハードコーディングする代わりにすべてのメソッドを取得したい場合は、次のようにすることができます。

(ControllerName.methods - ActiveRecord::Base.methods).each do |route_sym|
  match route_sym.to_s, to: "static_pages##{route_sym.to_s}", via: 'get'
end
于 2013-10-23T17:23:08.350 に答える