form_withでurlとmodelを同時に記述する理由
- 入力された情報をデータベースに保存しない時の記述です
<%= form_with url: "パス" do |form| %> フォーム内容 <% end %>
- 入力された情報をデータベースに保存する時の記述です
<%= form_with model: モデルクラスのインスタンス do |form| %> フォーム内容 <% end %>
urlとmodelを同時に記述する
以下は、url: donations_pathという記述で送信先のpathを明示する必要があります。urlオプションでpathを明示しないと、form_withはmodelオプションで渡されたモデル名をもとに自動的にpathを判断してしまうためです。
<%= form_with(model: @user, url: donations_path, local: true) do |form| %> <h1>ユーザー名を入力してください</h1> <div class="field"> <%= form.label :name, "名前(全角)" %> <%= form.text_field :name %> </div> <div class="field"> <%= form.label :nickname, "ニックネーム(半角英数)" %> <%= form.text_field :nickname %> </div> <div class="actions"> <%= form.submit "寄付する" %> </div> <% end %>