Ruby on Railsのルーティング設定に関するいくつかのアドバイス
2022-02-03 14:58:41
RESTfulリソースに1つ以上のアクションを追加する必要がある場合(本当に必要ですか?)、メンバールーティングとコレクションルーティングを使用します。
# poor
get 'subscriptions/:id/unsubscribe'
resources :subscriptions
# good
resources :subscriptions do
get 'unsubscribe', on: :member
end
# poor
get 'photos/search'
resources :photos
# good
resources :photos do
get 'search', on: :collection
end
複数のメンバー/コレクションルートを定義する必要がある場合は、代替のブロック構文を使用します。
resources :subscriptions do
member do
get 'unsubscribe'
# more routes
end
end
resources :photos do
collection do
get 'search'
# more routes
end
end
ActiveRecordモデルとの関係をよりよく表現するために、ネストされたルートを使用します。
class Post < ActiveRecord::Base
has_many :comments
end
class Comments < ActiveRecord::Base
belongs_to :post
end
# routes.rb
resources :posts do
resources :comments
end
ネームスペース・ルーティングを使用して、関連するビヘイビアをグループ化します。
namespace :admin do
# Directs /admin/products/* to Admin::ProductsController
# (app/controllers/admin/products_controller.rb)
resources :products
end
コントローラでレガシーワイルドコントローラルートを使用しないでください。このルーティングは、各コントローラのアクションを GET リクエストでアクセスできるようにします。
# Very poor
match ':controller(/:action(/:id(. :format)))'
関連
-
Rubyイテレータの知識まとめ
-
Ruby on rails install to remove DL is deprecated, please use Fiddle warning message method [test available].
-
画像フィルターアルゴリズムコードのRuby実装
-
GitHubが提唱するRubyコードの書き方まとめ
-
Windowsでrubyとrailsをインストールする際に発生する問題点まとめ
-
Ruby on Railsで構築するアプリケーションの基本的なディレクトリ構造のまとめ
-
Rubyのinstance_evalメソッドとclass_evalとの比較
-
Builderビルダーパターンを用いたRubyデザインパターンプログラミング例
-
Ruby on RailsでMarkdownを使用する方法
-
Rubyプログラミングにおけるネーミングスタイルガイド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Rubyの二分探索(dichotomous search)アルゴリズムの簡単な例
-
Rubyのブロック機能をより深く理解するために
-
Rubyを使ったラムダ計算の詳しいシミュレーション方法
-
UbuntuでRuby on RailsフレームワークとRubyMine IDEを設定する
-
Rubyのシングルトンメソッドとシングルトンクラス
-
RubyのProcクラスとProc.newメソッドの使用法
-
Nokogiriパッケージを使ってXML形式のデータを操作するためのRubyチュートリアル
-
Ruby は REXML ライブラリを使って xml 形式のデータをパースする
-
Rubyのデザインパターン。プログラミングにおけるアピアランスパターンの応用
-
デザインパターンのうち、ProxyパターンとDecorativeパターンを使ったRubyのコード例