newとeditの2 つのアクションがあり、これらはビューで名前付きformの一部を呼び出します。
新規(ビュー):
<h1>New Item</h1>
<%= render partial: 'form' %>
編集(表示):
<h1>Edit Item</h1>
<%= render partial: 'form' %>
フォーム(部分):
<%= form_for @item do |f| %>
<% f.field_for :foo %>
<% end %>
モデルには、データベースの id フィールドに大きな特殊性があります。これは構成列ですが、単一です。私は説明する:
私はアイテムのタプルを持っています:
id | name | foo
----------------------------------
10001000 | Name of item 1000 | bar
10001001 | Name of item 1001 | bar
10011000 | Name of item 1000 | bar
10021000 | Name of item 1000 | bar
10021001 | Name of item 1001 | bar
id 列の最初の 4 桁は架空の item_type_id 列から取得され、次の 4 桁は *item_id* です。この性交テーブルは変更できません。
/items/newを実行すると、フォームが適切なアクション html プロパティを生成したため、問題はありません。
<form action="/items/new" method="post">...</form>
しかし、/items/editを実行すると、フォームは次のように生成されます。
<form action="/items/10021001/edit" method="post">...</form>
そして、次のように生成する必要があります。
<form action="/items/1001/edit" method="post">...</form>
id 列1002の最初の部分は、セッション変数から取得されます。
routes.rb のトリックを使用しています
resources :items
きちんと説明されているかわかりませんが、まだ英語のレッスンを受けています。