Railsで単数リソースとform_forを使う方法

こんにちは!

今回はRailsで単数リソースとform_forを使う方法についてまとめます。

単数リソースとは

  • 一つだけの値を持つリソース
  • 専用のモデルは持たずに、他のモデルの1レコードだけを扱うことがある
  • Sessionを扱う時にも使用する

単数リソースのルーティング

  • resource :accountとした場合
    • 単数リソースなのでindexアクションはない
アクション ヘルパーメソッド パス
show account_path, :account /account
new new_account_path, :new_account /account/new
edit edit_account_path, :edit_account /account/edit
create account_path, :account /account
update account_path, :account /account
destroy account_path, :account /account

form_forで単数リソースを扱う場合

  • 単数リソースaccountで、memberモデルのオブジェクトを更新する時
<%= form_for @member do |form| %>
  ...
<% end %>

とすると、パラメータ名はmember, 送信先URLは/members/123となってしまう

<%= form_for @member, as "account", url: :account do |form| %>
...
<% end %>

とすることで、パラメータ名はaccount, 送信先URLは/accountとなる

おわりに

今回は単数リソースとfrom_forについてまとめました。モデルと対応しない単数リソースはまだ使い方を掴めていない部分がありますが、使いながら慣れていきたいと思います。

50/100