問題タブ [nested-attributes]

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 に答える
26174 参照

ruby-on-rails - Rails 3:「accepts_nested_attributes_for」はどのように機能しますか?

次の関連付けを検討してください。

もしも

そして私は:

予想どおり、「My Shop」という名前の新しいショップが作成され、 に割り当てられ@productます。

ただし、次のようなものがshop_attributes含まれているとどうなるかわかりません。id

次のエラーが表示されます。

質問1

これはどういう意味ですか?

質問2

これが事実である場合、つまり、idショップの が既知であり、そのようなショップが既に存在する場合、このショップがそれに割り当てられるような をidどのように作成すればよいですか?@product

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

ruby-on-rails - RailsS​​TIの基本クラスからの条件付きサブクラス化

基本的に、写真ビデオの2種類のアセットを持つエンティティがあるプロジェクトを開発しています。

すべてのアセットを同じテーブルに配置し、PicturesまたはVideosのいずれかに対して単一のアップロードフォームを作成する必要があるため、Assetクラスの子孫であるPictureVideoの両方を持つ単一テーブル継承を使用しています。また、ビデオか画像かに応じて、さまざまな検証/コールバックを実行します。

私はペーパークリップを使用してアップロードプロセスを処理しています。ファイルをアップロードしてアセットを作成するときに、アプリケーションはアップロードされたファイルのmimeタイプに応じて正しいサブクラス(画像またはビデオ)をインスタンス化するという考えです。 。

これは私のクラスのスケッチです:

私の考えは、 Assetbefore_saveクラスにコールバックを実装し、そこで正しいクラスをインスタンス化しようとすることですが、それを行う方法や、それが良い考えかどうかはわかりません。

これについて何か考えはありますか?

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

ruby-on-rails - Rails3でnested_attributesを機能させるにはどうすればよいですか?

ここに私のユーザーモデルがあります:

これが私の教師モデルです:

これが私のフォームです:

これが「ネストされた属性を受け入れない」ことを除いて、私の開発ログには次のように書かれています:

関連しているかどうかはわかりませんが、フォームは teacher_attributes 配列などの内部にフィールドを生成していません - それは教師の中にあります。それが私の問題だと思いますが、フィールドをその中に入れる方法がわかりません。助けてください。

ありがとう!

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

ruby-on-rails - Rails、親オブジェクトと一緒に関連レコードを作成しますか?

この特定のことを尋ねたり検索したりする方法がわからないかもしれませんが、基本的には、親オブジェクトを作成するときにいくつかの関連モデルを作成したいと思います...次のような状況があるとします。

私はRecipeどのhas_many Ingredientモデルを持っています...一度にすべてを作成する方法はありますか?たとえば、これは私のシードタスクの一部であると言います:

それとも私は完全に夢中ですか?親モデルを作成せずに、次にすべての子を作成せずに、これを同様に行うための何らかの方法が必要です...など。

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

ruby-on-rails-3 - SQLExceptionを引き起こすためのaccepts_nested_attributes_for

Sectionsaccepts_nested_attributes_forというArticleオブジェクトを作成するために使用したいと思います。has_many

:reject_if条件がネストされた属性を受け入れるときはいつでも(属性titleが受け入れられない場合blank?)、SQLExceptionが表示されます。それ以外の場合、記事は関連するセクションなしで正常に作成されます。

Section Load予想外だったので、ステージ中に何が悪いのかを解明しようとしていWHERE (article)ます。読んでくれてありがとう。

0 投票する
3 に答える
1159 参照

ruby-on-rails - Rails のネストされた属性が ID を正しく挿入しない

モデルのネストされた属性を編集しようとしています。ここで概要を説明し、ここで複製します。

私のコードには、次のものがあります。

これはうまく機能しますが、HTML を見ると、次のような入力が作成され、正しい ID の入力に失敗し、代わりにモデルのメモリ表現 (?) が配置されます。その結果、更新は失敗します。

編集: このメソッドでそれを実行しようとしている理由は、既存の食事ライン項目の関連付けに関する情報を収集する必要があるためです。たとえば、コードを取り出した領域には、次のようなコードがあります。

少なくとも私の試行では、パーシャルを含むフォームビルダーを使用している場合、この情報を取得することはできません。

編集 2:* コード内の編集を参照してください。これが私のMealLineItemです

そして、モデルの食事accepts_nested_attributes。ご覧のとおり、食品モデルと食事モデルの両方に属しています。既存の food_line_item については、次のようにする必要があります。

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

ruby-on-rails - accepts_nested_attributes_forはhas_many宣言の条件に従いますか?

私が現在コードを設定している方法では、ユーザーはhas_many current_treatmentsを持っています(これは、それらとユーザーの間の関連付けでブール値の「current」がtrueに設定されているという点で他の処理とは異なります)。私が抱えている問題は、accepts_nested_attributes_forを介してネストされた形式でユーザーの現在の処理を指定しようとすると、「処理」が「現在の」ブールセットで保存されないことです。

私はaccepts_nested_attributes_forがあなたのためにこれが機能すると仮定しました。そうじゃない?もしそうなら、私は何を間違っているのですか?そうでない場合、これを達成するためのベストプラクティスの方法は何ですか?

これが私の例です:

そして、私はユーザーが次の方法で現在の治療法を設定できるようにしようとしています。

しかし、フォームを送信すると、次のようになります。

has_many宣言で指定されているように、「現在の」ブール値をtrueに設定せずに、新しい処理が保存されることに注意してください。

編集:これがTreatmentモデルです。

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

javascript - 動的なネストされたモデルフィールドでのRailsJavaScript検証

ネストされたモデルフォームがあり、ユーザーは、タスクの「名前」と「説明」で構成される「タスク」をいくつでも含めることができる「プロジェクト」を作成できます。これらのタスクは、ユーザーがjQueryを使用して動的に追加します。

これらの各タスクのフィールドにクライアント側の検証を提供したいのですが、現在はlivevalidationプラグインを使用しています。

問題は、フォームが送信されたときにRailsが処理を実行するには一意である必要があるため、入力フィールドに現在の時刻に基づいて動的IDが与えられることです。

私の見方では、2つの選択肢があります。

  1. どういうわけか、javascript検証でワイルドカードを受け入れて、タスクが追加されるたびに、変更されないIDの部分に基づいてフィールドに対して検証を設定できるようにします。

  2. タスクの作成と同時に、必要な検証JavaScriptをインラインで作成します。

上記は機能しますか?より良いオプションはありますか?部分的なID一致から選択された要素をバリデーターに取り込むにはどうすればよいですか?

ありがとう

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

ruby-on-rails - 多くの子レコードを反復処理するときに、ActionView の fields_for インデックスにアクセスするにはどうすればよいですか?

fields_for を使用して has_many 関連付けの属性にフィールドを含める Rails 2.3.10 アプリがあります。親モデルでaccepts_nested_attributes_forを使用しており、その多くの子が次を使用してフォームに表示されています。

fields_for ヘルパーは子マーカー モデルを繰り返し処理し、それぞれに対して text_field 入力が生成されます。これらのテキスト フィールドは、次のような id 値を生成しました。

  • map_markers_attributes_0_lat および map_markers_attributes_0_long

  • map_markers_attributes_1_lat および map_markers_attributes_1_long

  • ...

  • map_markers_attributes_5_lat および map_markers_attributes_5_long

id の整数は、反復されるレコード配列のインデックスです。コードの他の場所で使用するために、このインデックス値にアクセスするにはどうすればよいですか?

たとえば、Javascript を使用してこれらの入力の id 値にアクセスしたいとします。

html の先頭に JavaScript を挿入して、フィールドの変更を観察します。フィールドの ID を知る必要があり、generate_html_id メソッドは、marker_f ビルダー オブジェクトからフィールドの ID を複製できる必要があります。ただし、fields_for からのインデックス値を取得する方法がわかりません。

fields_for_with_index メソッドが必要なようですが、ありません:

ところで、フィールドのカスタム id 値を作成することもできますが、慣習に従うことをお勧めします。

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

ruby-on-rails - レコード作成時のエラー: 配列ではなく nil オブジェクト?

Topic多くのがPostsあり、それらのネストされた属性を受け入れます。トピックを作成すると、最初の投稿も作成されます。

Topics#createが呼び出されたときNoMethodErrorに を評価しようとするとnil.[]=、何が原因なのかわかりません。

作成方法:

私の新しいトピックフォーム:

何が間違っているかについて何か考えはありますか?