問題タブ [fields-for]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
459 参照

ruby-on-rails - 2 回ネストされた属性 form_for

2 回ネストされた属性フォームの解決策を探しています。チームには数人のプレーヤーがいて、各プレーヤーには数ラウンドあります。モデルに accept_nested_attributes を追加しました。この方法は私にはうまくいきませんでした。

0 投票する
1 に答える
263 参照

ruby-on-rails - 不幸なモデル名を持つaccepts_nested_attributes_forを持つRailsのネストされたフォーム

「コントローラー」という名前の親モデルがあります(成熟したアプリであり、私の決定ではありません)

形:

これは表示されません。

変数名を他の名前に変更すると、フォームが構築されます。Rails固有の予約名だと思います。

質問:

どうしたの?どうすればこれを機能させることができますか?

解決済み:

問題は、親モデルがまだ子モデルに関連付けられていないことでした。必要なすべての情報を提供しなかったという私の間違い。

これはうまくいきました。

したがって、私の fields_for フォームビルダーも機能しました。

0 投票する
1 に答える
248 参照

ruby-on-rails - accept_nested_attributes はレコードを破棄していません

私の問題は accept_nested_attributes に関連しています。モデル名StudentProfileがあり、次のコードが含まれています。

私の別のモデルには、次のコードが含まれています。

および My view ファイルには、次のコードが含まれています。

問題は、学生のプロファイルを保存するたびに、実際にプロジェクトの記録も保存できることですが、学生のプロファイルを更新してプロジェクトの 1 つを削除しようとするたびに、更新時にプロジェクトが実際に破棄されるわけではありませんがparams、次のものが含まれます。コンテンツ:

私が間違ったことを明確にしてください。

0 投票する
1 に答える
1554 参照

ruby-on-rails - nested_form でオブジェクトの値を取得する

ネストされたフォーム (注文の支払い) があり、編集ビューでネストされたフォーム (fields_for) の値をテストしたいと考えています。しかし問題は、私はそれぞれをチェックすることができないということです.私はこれを行うことができます:

次のように、それぞれを確認する方法を教えてください。

0 投票する
2 に答える
2335 参照

ruby-on-rails - Rails fields_for が表示されない

ハマった。次のモデルがあります:プロファイル、ユーザー、ジョブ。

ユーザーには 1 つのプロファイルがあり、プロファイルには多くのジョブがあります。

ここで、ユーザーが自分のプロファイルを編集して自分のプロファイルにジョブを追加できるようにしたいと考えています。これを行うには、次のコードを使用しました。

しかし、問題は、ユーザーが自分のプロファイルに既に仕事を持っている場合にのみフィールドを表示し、それを更新できることです。ただし、この場合、配列は空であり、反復はありません。ユーザーが仕事をしていなくてもフォームが確実に表示されるようにするには、これの代わりに何を使用できますか?

「begin - end while」を追加しようとしましたが、機能しませんでした。:jobs 配列が空であるかどうかのチェックも、新しい Job オブジェクトの作成も機能しませんでした...または少なくとも私の試み。

あなたはなにか考えはありますか?

ありがとう!

コントローラーの新しいメソッド。

0 投票する
2 に答える
358 参照

ruby-on-rails - Railsの実行方法f.parent.text_field:name

ジャーナルとjournal_entriesのフィールドをテーブルの1つの行に配置し、同じビューに多くのデータ入力行を追加して表示する機能が必要です。(つまり、行のテーブルで、link_to_add_fieldsとaccepts_nested_attributesを使用して、テーブル内の行を展開します)。

ある種のf.parent.text_fieldまたはf.object.parent.text_fieldが必要ですか?

私は次のようなことをしようとしています

_journal_entry_fields.html.erb

私のモデル

Rails3.2.12とruby1.9.3を使用しています

私はこれが直面している問題よりも優れた解決策であるかどうかを確認しようとしています:rails link_to_add_fieldsがhas_many:through(内部にネストされたフォームを含む)でフィールドを追加しない

大幅に違うと思うので、別のスレッドを作りました。

ありがとう、フィル

0 投票する
2 に答える
917 参照

ruby-on-rails - fields_for builder .object メソッドでオブジェクト値を取得できない

has-many-through 関連付けを構成する 3 つのモデルがあります。

モデル コードは次のとおりです。

ItemAttrValモデル(遷移表)

RegistryItemモデル

AttrNameモデル

RegistryItemは afields_forを次のように使用します。

部分的には、次のようになります。

最初の 2 つのデバッグ行は私の質問のビットですが、最初に 3 行目に関連しています。そこで、ドロップダウン選択フィールドに「事前に選択された」値を提供しようとしています。これは、ユーザーが RegistryItem を編集しているときに、以前に選択した AttrName が表示されるようにするためです。

を使用してその値を設定しようとしてf.object.attr_name_idいますが、実際には以前に選択した値を適切に選択せず、代わりに最初に移動します。

最初の 2 つのデバッグ行は、メソッドが機能することを確認するためのものでしたf.object...

ログを見ると、次のように表示されます。

基本的に、1 行目は、ItemAttrVal を取得していることを示しています。2 行目は、その情報を取得していないようです。

また、デバッガーを使用してチェックしましたが、そこで、display f.object.attr_name_id期待している正確な値を表示するために使用できます...

この種の質問は2つにまとめられます...

  1. の値を取得できないのはなぜf.objectですか?
  2. 行 3 ( ) を間違って実行しようとし<%= f.select :attr_name_id, options_from_collection_for_select(AttrName.all,"id","description"), :selected => f.object.attr_name_id, :prompt => "Select an attribute" %>ているのですか?実際にはもっと良い方法がありますか?

前もって感謝します!

0 投票する
1 に答える
596 参照

ruby-on-rails - Ruby on Rails 3.2.13-fields_forのフィールドを参照するにはどうすればよいですか?

関連するモデルModalityItemを持つModalityモデルがあります。モダリティには多くの:modality_itemsがあり、ModalityItemは:modalityに属しています。表示したいフィールドの1つは、MediaLibraryの名前フィールドです。IDはModalityItemのmedia_library_idと一致します。

各モダリティに対して最大15のModalityItem行を許可する予定です。Railsアプリケーションは、新しいレコードを追加する必要がある場合はModalityItemの空白行を表示し、レコードが存在する場合はModalityItem行データを表示します。

これは、modality_controllerのeditメソッドにあるコードで、Modalityの名前を変更することもできます。配列@items(Array.new(15))を作成し、各配列要素にModalityItemまたはModalityItem.newの行をロードしました。選択したModalityのModalityItem行が存在しない場合、配列全体にModalityItem.newの15個の要素が含まれます。ModalityItem行が存在する場合、その行を対応するMediaLibrary行に結合し、その名前を編集ビューに表示します。

これが編集ビューの私のコードです。

配列内のドロップダウンリストにある複数のアイテムのID番号をキャプチャしたcollection_selectステートメントでfields_forのみを使用しました。これらのIDを使用して、更新していたメインテーブルに関連する別のテーブルを作成しました。

このシナリオでは、画面に入力された情報を収集し、それをループしてレコードを作成します。モダリティの既存のModalityItem行をすべて削除し、毎回再作成する予定です。私がcollections_selectでfields_forを使用したとき、インスタンス変数@whatevernameをparams [:whatevername]に等しく設定し、IDをループしました。私が含めたコードで、@ modality_items = params [:modality_items]を設定し、それを使って何かを行うと思います。誰かがデータを入力し、ボタンをクリックして更新するとどうなるかについて、次の質問があります。

params [:modality_items]には何が含まれていますか?ビューからのすべてのテキストフィールドを含む配列ですか?

@itemsはフォームのデータで更新されますか、それともparams [:modality_items]を保存する必要がありますか?

これは基本的な情報だと思いますが、これは初めてのことであり、fields_for offとonについて何ヶ月もオンラインで検索した後、答えを見つけることができませんでした。

注:続行する前にfields_forのフィールドにアクセスする方法についての詳細が必要なため、現在、ビューでMediaLibraryの名前を参照していません。また、ModalityモデルとMediaLibraryモデルの両方に:nameが含まれているという問題もあります。Modalityの名前は更新可能ですが、MediaLibraryの名前はfields_forステートメントにのみ表示されます。

どんな助けでもいただければ幸いです。

0 投票する
2 に答える
255 参照

ruby-on-rails - RoR - fields_for を可変回数呼び出すヘルパー メソッド

私の Rails アプリには、fields_for何度も使用するフォームがあり、場合によっては への呼び出しをネストしていfields_forます。

残念ながら、グラフィック デザイナーは、入力フィールドが関連するモデルに従ってグループ化されないように、入力フィールドを並べ替えるように主張しています。したがって、ブロックを簡単に作成できるヘルパーを作成したいとfields_for思いますが、ヘルパー メソッドで可変数のブロックをネストする方法がわかりません。

説明のために、次のようなコードを想像します。

どうすればこれを達成できますか?