問題タブ [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 投票する
2 に答える
275 参照

python - ネストされた属性のAttributeErrorsを解決する

私はいくつかのテストを行うために小さなモッククラスを書いています。

ただし、このクラスは、ネストされた属性を持つという考えをサポートする必要があります。

この例は、問題に対する洞察を提供するはずです。

上記のクラスから、次のことができます。

AttributeErrorを回避するためにフォールバックする属性を追加できることはわかっていますが__getattr__、このようなものを有効にする必要がある場合はどうなりますか?

オブジェクトがとして呼び出された場合に何を返すかはわかっていますが、f.x.y.z()それを実現する方法を見つける必要がありますz()

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

sql - SQL サブクエリ COUNT CASE

ネストされたサブクエリのカウントが 0 の場合、SELECT クエリが特定の値を返すようにしたいのですが...

これは機能しません。この構文の何が問題なのですか?

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

ruby-on-rails - RoR: fields_for とパーシャル

製品をトランザクションに関連付けるためにnested_attributesを使用しています。製品モデルに日付を追加する必要があります。date_select を今日に設定するためのリンクを追加したいと思います。

ここにビューがあります:

そして部分:

???? transaction_trans_products_attributes_#number# を読み取る必要があります。#number# はテキスト フィールドに正しく表示されます。po テキスト フィールドは id="transaction_trans_products_attributes_0_po" を読み取り、次の trans_product は id="transaction_trans_products_attributes_1_po" を読み取ります

このカウンター値を link_to_function パラメーターに取得するにはどうすればよいですか?

どうも

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

python - プロパティとしての疑似辞書

私は、2つのC疑似 と を持つべきPythonクラスを持っています。疑似辞書という用語は、辞書が実際には存在せず、キーがアクセスされるたびに「再計算」されることを意味します。dictab

擬似コードでは、これは次のようになります。

aとのクラスを実装することもできますbが、どちらもいくつかの短いメソッドしかないため、これを行うためのよりエレガントでコンパクトな方法があるかどうか疑問に思います。

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

ruby-on-rails - rails:子レコードを作成しながら、存在しない場合は親を作成します

次のベストプラクティスはありますか?:

has_manyInventoryのManufacturerモデルがあります

新しい在庫フォームで、Manufacturer.nameにマップするフィールドが必要です。これにより、新しい在庫フォームをアプリに送信したときに、次のようになります。

  • フォームから「名前」を持つメーカーを検索します
    • 存在する場合は、IDを@ Inventory.manufacturer_idに割り当て、@inventoryを保存します
    • 存在しない場合は、フォームから「name」を使用して製造元を作成し、IDを@inventory.manufacturer_idに割り当てて保存します。
    • 新しい在庫フォームで検証を機能させる
      • そのため、在庫フォームが「名前」以外のフィールドの検証に失敗した場合
        • 「名前」フィールドには、ユーザーが入力した内容が再入力されます(ただし、フォームが検証に合格しない限り、新しいメーカーは作成されません)
0 投票する
1 に答える
576 参照

ruby-on-rails - Rails ネストされたモデル属性 'accepts_nested_attributes_for' 作成時のバグの可能性

Rails v2.3.8でバグが見つかったと思いますが、ばかげたことをしている場合に備えてここで質問しています。

出荷を説明する 3 つの深さのネストされたモデルがあります (つまり、出荷 -> ボックス -> ボックス内の項目)。出荷と輸送箱は同時に作成されますが、品目は注文が行われた時点からすでに存在するため、品目を箱に関連付けるだけで済みます。

create メソッドでshipmentこのエラーが発生しました:

実行しようとした SQL を示します。

引用符で囲まれていないことに注意してくださいvendor_shipping_box_id

コンソールでこのクエリを実行すると、次のようになります。

期待どおりの結果が得られます。奇妙なことに、このupdate方法はうまく機能します

必要に応じて詳細を投稿できますが、Rails で生成された SQL はvendor_shipping_box_id引用符で囲む必要があり、それがActiveRecordエラーの原因ですよね? または、何か不足していますか?

(私のモデル/コントローラー/ビューはすべて、Ryan Bates の RailsCasts ep: 196 & 197 に従ってセットアップされていることに注意してください)


更新: Rails 3.0 に更新したところ、create メソッドが期待どおりに機能しました。したがって、これは間違いなくバグです。以前のバージョンのソフトウェアのバグを報告するのは適切ですか? Rails のバグやバグ報告に関するドキュメントはどこにありますか?

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

ruby-on-rails - form_forで複数の「1対多」のネストされた属性を使用するにはどうすればよいですか

ユーザーがたくさんのクレジットカードを持っていて、クレジットカードがたくさんのアドレスを持っているという事実を踏まえて、私はユーザーとアドレスを持つクレジットカードを一度に作成するフォームを作成しようとしています

関連するモデルコード:

コントローラコード

コードを表示

だから私が抱えている問題は、アドレスフィールドが表示されないことです。@user.credit_cards.addresses.buildコントローラに追加しようとしましたが、undefined method 'build' for nilエラーが発生します。

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

ruby-on-rails - 入れ子属性との関連付けを熱心にロードすることは可能ですか?

簡単に言うと、恐ろしい2(n)クエリの問題が発生しました。n =データベース内のスキルの数の場合、私のcharacters#editフォームはページをロードするために2(n)クエリを実行します。スキルごとにPlayerSkill(結合テーブル)を選択し、スキルごとに1回スキルを検索します。

これが状況に関連すると私が信じるいくつかのコードです。本質的に、このプロセスに関係するモデル、ビュー、およびコントローラーは、モデルの検証が少なく、私が気にしないアクションも少なくなります。

コントローラー:

モデル:

問題のあるビュー(HAML):

状況についての私の理解は、(大まかに)単一の追加クエリで関連付けを取得するための積極的な読み込みが存在することです。

2つの領域で積極的な読み込みを適切に適用する必要がありますが、その方法については途方に暮れています。

steb_player_skillsメソッドでは、キャラクターにPlayerSkillオブジェクトがまだないことを前提として、 PlayerSkillオブジェクトを作成する必要があります。 データベース内の各スキルをループするため、ここで積極的に読み込むことでメリットが得られる可能性があります。これが最初の「nクエリ」の出所です。

次に、ビューで、fields_forは、取得したすべてのPlayerSkillをループします。これは、ここで熱心にロードする方法がないため、= ps.object.skill.nameを呼び出してスキルの名前を出力すると、スキルルックアップが実行されます。 、「n-クエリ」の2番目のセットを取り込みます。

私の主な関心事はビューレイヤーにあります。fields_forを使用してネストされたフォームを生成する場合に、関連付けを熱心にロードする方法を説明するドキュメント(Rails APIなど)が見つかりません。

ありとあらゆる回答をありがとう:)〜Robbie

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

ruby-on-rails - 透かしプロセッサを備えた複数のクリップ添付ファイル

ペーパークリップを使用して複数の添付ファイルをアップロードし、それらを透かしで処理するのに非常に問題があります。

広告と写真の 2 つのモデルがあります。広告は has_many :photos であり、写真は belongs_to :ad です。

/models/ad.rb でより正確に言うと、次のものがあります。

私の photo.rb ファイルは次のようになります。

私の見解では、これを使用してファイルフィールドを追加します

私のコントローラーでは、編集アクション4.times {@ad.photos.build}でファイルフィールドを生成するために使用します。

次のように、通常の has_attached_file 宣言を使用すると、透かしプロセッサを使用しない場合、すべて正常に機能します。

しかし、透かしプロセッサを使用すると、常に次のエラーが発生します。

私が言える限り、パラメーターは問題ありません

透かしプロセッサ /lib/paperclip_processors/watermark.rb は次のようになります。

複数のアタッチメントなしで、通常のアプリでプロセッサを試してみましたが、完璧に機能します。私が知る限り、nested_attributes では機能しません。

アプリは、Ruby 1.8.7 と paperclip 2.3.11 を備えた Rails 2.3.5 です。

私は今2日間これを理解しようとしてきたので、あなたが何か助けを提供できるなら、それは大いに感謝されます:)

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

ruby-on-rails - accept_nested_attributes_for を使用して結合モデルの属性を変更する

簡単に言えば、連絡先には、スケジュールとしてアクティブである場合とそうでない場合がある、さまざまな関連付けられたタイム ウィンドウを設定できます。ウィット:

モデル

意見

これは次のようなものを提出します:

コントローラーの更新アクションは、基本的にストックされていますが、Advanced Rails Recipes ブックの「Handling Multiple Models」の例を使用してコーディングした、別の関連モデルの別のインスタンスを処理することを除きます。

この API docによると、上記は機能するはずです。ただし、スケジュールについては何も更新されていません。これはサーバー ログに表示されます。

(NetBeans は出力に愚かな "[0m" を表示しています。何が問題なのかわかりません。)

SQL は、「アクティブな」ブール フィールドがチェックされた場所で 0 に設定されていることを示しています。アクティブビットを正しく設定するにはどうすればよいですか?

フォローアップとして、スケジュールの「接続」をまったく取り除くためにこれをどのように整理しますか? フォームからスケジュールを指定して :_delete を送信する必要があると考えていますが、チェックボックスが関係している場合、条件付きでそれを行うにはどうすればよいですか?

ご協力いただきありがとうございます。Rails は私にとって広大な主題であることが判明しており、「正しく」やりたいと思っています。私はここに本当に近づいていますが、これを正しいだけでなくエレガントにする方法が必要です。ビューのコードは、適切な Rails であるにはあまりにも面倒に感じます。;-)