0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

同一ページに二つのformを設置する

Posted at

##別モデルのformを同一ページに別々に設置。

今回も、少し苦労したのでメモとして残します。

##説明

categoryモデルと
memo_roomモデルを用意。

■やりたい事

・ページ内でカテゴリの新規追加と
・メモルーム(トークルームみたいな感じ)の作成をするフォームを別々で保存し実装したい。

<p>カテゴリを新規作成する場合はこちらに入力してください。</p>
<%= form_with(model: @category, url: categories_create_path, local: true) do |f| %>
    <%= render 'layouts/error_messages', model: f.object %>
      <div class="form-group">
        <%= f.text_field :title, class: 'form-control', rows: 1, placeholder: "カテゴリ名20文字以内で作成してください" %>
      </div>
        <%= f.submit 'カテゴリの追加', class: 'btn btn-primary btn-block' %>
<% end %>
<p>既に作成済みの方はカテゴリを選択してください(必須)</p>
<%= form_with(model: @memo_room, local: true) do |f| %>
    <%= render 'layouts/error_messages', model: f.object %>
        <div class="form-group">
        <%= f.collection_select :category_id, Category.all, :id, :title, :include_blank => true %>
      </div>  
        <div class="form-group">
           <label for="title">メモルームのタイトルを入力してください。</label><%= f.text_field :title, class: 'form-control', rows: 5, placeholder: "タイトルを20文字以内で入力してください" %>
        </div>
          <%= f.submit 'ルームを新規作成', class: 'btn btn-primary btn-block' %>
<% end %>

こちらが今回使うform二つのformです。
上がcategoryモデルのformです。
下がmemo_roomのモデルです。

##結論

結果的に何をやったかと言うと。

<%= form_with(model: @category, url: categories_create_path, local: true) do |f| %>

POST   /categories(.:format)     categories#create

rails routesでまず、categoriesのcreateアクションのpathを調べ。
routes.rbにて post 'categories/create' とデータの送信先を指定しました。

これで、categoryのformはpost 'categories/create'に送信されます。

下のformのmemo_roomはmemo_rooms/createに送信され同じページ内ですが、別々に送信を実装する事が出来ました。

以上!!urlオプション大事ですね!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?