質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

0回答

3354閲覧

nested_form_fieldsというgemについて

NishidaRyu416_

総合スコア113

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

1クリップ

投稿2016/10/28 12:43

編集2016/10/28 14:04

###このgemは動的にformを追加できるようにすることを目的としたもの

・本来ならhas_many,belongs_toの関係で使う

解説ページ

gem公式ページ

ruby

1<%= form_for(@hotel, html:{class: 'form-horizontal'}) do |f| %> 2... 3 <table class="table table-striped table-bordered table-hover"> 4 <tbody> 5 <tr> 6 <th>お部屋タイプ名</th> 7 <th>定員人数</th> 8 <th>メモ</th> 9 <th>Action</th> 10 </tr> 11 <%= f.nested_fields_for :roomtypes, wrapper_tag: :tr do |q| %> 12 <td><%= q.text_field :name, class: 'form-control' %></td> 13 <td><%= q.number_field :capacity, class: 'form-control' %></td> 14 <td><%= q.text_field :note, class: 'form-control' %></td> 15 <td><%= q.remove_nested_fields_link 'Delete', class: 'btn btn-danger', role: 'button' %></td> 16 <% end %> 17 </tbody> 18 </table> 19 <%= f.add_nested_fields_link :roomtypes, 'Add new', class: 'btn btn-primary', role: 'button' %> 20... 21<% end %> 22

しかし、has_many,belongs_to関係でないケースで使いたい。
具体的には、以下のコードのように問題、回答とのセットを@wordを保存する際に、一度に多くの問題、回答とのセットを保存するためのフォームを動的に増やしたい。

ruby

1<div class="row"> 2 <div class="col-md-6 col-md-offset-3"> 3 <%= form_for(@word) do |f| %> 4 <%= render 'shared/error_messages', object: f.object %> 5 <%= f.label :image,"ホーム画像" %> 6 <%= f.file_field :image,class: 'form_control'%> 7 8 <%= f.label :japanese,"問題"%> 9 <%= f.text_area :japanese, class: 'form-control' %> 10 11 <%= f.label :english, "回答" %> 12 <%= f.text_area :english, class: 'form-control' %> 13 14 <%= f.remove_nested_fields_link 'Delete', class: 'btn btn-danger' %> 15 <br> 16 <hr> 17 <%= f.nested_fields_for :words do |q| %> 18 19 <%= q.label :image,"ホーム画像" %> 20 <%= q.file_field :image,class: 'form_control'%> 21 22 <%= q.label :japanese,"問題"%> 23 <%= q.text_area :japanese, class: 'form-control' %> 24 25 <%= q.label :english, "回答" %> 26 <%= q.text_area :english, class: 'form-control' %> 27 28 <%= q.remove_nested_fields_link 'Delete', class: 'btn btn-danger' %> 29 30 <% end %> 31 <br> 32 <%= f.add_nested_fields_link :words, 'Add new', class: 'btn btn-success'%> 33 <hr> 34 <%= f.submit ' my words', class: "btn btn-primary" %> 35 <% end %> 36 </div> 37</div> 38 39 40

回答よろしくお願いしましす。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hana-da

2016/10/29 22:21

modelのコードがあった方がいいと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問