問題タブ [nested-form-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 に答える
3119 参照

ruby-on-rails-3 - ネストされたform_forgemは使用できません

初めてnested_form_forgemを使用しています。これが問題なのか、間違って使用しているのかはわかりませんが、「未定義のメソッドnested_form_for」エラーが発生します。あなたが見ることができるように私はかなり規則的な形を持っています:

ちなみに、私はgemをインストールし、:を実行してrails generate nested_form:install command、jquery include()の後にレイアウトに含めたnested_form.jsファイルを生成しました<%= javascript_include_tag :default, 'nested_form' %>

この宝石を使っている人はいますか?

ありがとう!

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

ruby-on-rails - form_for を使用して関連付けの has_many :through 関連付けを更新するにはどうすればよいですか

member_profile のフォームで、管理者に表示される役割のチェックボックスが必要です。ネストされた form_for を使用したいのですが、機能させることができないため、手動で check_box_tags (以下を参照) を作成し、それらを手動で member_profile.member に追加することにしました。

Member モデルは Devise であり、将来認証システムを変更する場合に備えて、これらのフィールドを MemberProfile データと混合したくないことに注意してください。

フォーム (haml)

member_profiles_controller.rb

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

ruby-on-rails - form_forモデルの更新

次のように整理されたネストされたリソースがあります。

ビューの部分では、プロファイルモデルと場所も一度に処理(更新/作成)できる一意のform_forが必要です。出来ますか ?コードは何ですか?複数のモデルを一度に受け取るコントローラーを整理するにはどうすればよいですか?

Tnx

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

ruby-on-rails - Rails 3 form_for ネストされたルート

Ruby ガイド (http://guides.rubyonrails.org/getting_started.html#adding-a-route-for-comments) のブログとコメントの例に従って、ネストされたルートで form_for を実行しようとしています。

多くの種類の質問を含む調査を作成するアプリケーションを実行しています。質問はグループにあり、各質問には 1 つ以上の回答オプションがあります。

これはreoutes.rbです

コントローラーはうまく機能しており、作成されたグループを表示すると、質問が表示され、ネストされた form_for で質問が作成される可能性があります。

グループ/show.html.erb

次に、答えと、その質問に答えを挿入する方法を示す必要があります。回答を表示するには、 @group.questions.each ブロック内の q.answers.each を使用するとうまくいきます。しかし、私がしなければならないことは、回答のために form_for を作成することです。次のコードを試しましたが、動作しません:

グループ/show.html.erb

Railsはエラーを出します:

未定義のメソッド `question_answers_path'

form_for([q, q.answers.build]) を使用しようとすると。

何か助けはありますか?

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

ruby-on-rails - 二重にネストされた形式で複数のレコードを送信するときの不明な属性エラー

次のような状況でnested_formを使用しています。

親 (climb) ==has_one==> モデルに参加 (route_ascent) == ポリモーフィック has_many==> 子 (route_step)

だから私は次のような登りオブジェクトを持っています

RouteAscent はこちら

そして、これがRouteStepです

私のクライムフォームでは

私の _route_ascent_fields パーシャルは単純です

そして、私の _ascent_step_fields パーシャルは

私が抱えている問題は、結合モデルの has_many 関連付けに複数のオブジェクトを含むフォームを送信するたびに、不明な属性エラーが発生することです。このような場合にフォームによって生成されるパラメーターは次のようになります。

2 番目のオブジェクトがパラメーターに正しく含まれていないようですが、その理由がわかりません。

この問題は、has_many 関連付けがオブジェクトで始まるかどうかに関係なく発生します。したがって、空の場合、1 つのオブジェクトを正常に作成できますが、2 つ作成することはできません。既に 1 つのオブジェクトがある場合、このエラーが発生しないと 2 番目のオブジェクトを追加できません。

これに引き続き取り組みますが、問題が何であるかについての洞察をいただければ幸いです。

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

ruby-on-rails - Rails 3:nested_form、collection_select、accepts_nested_attributes_forおよびfields_for

更新:ここで回答しました

こことインターウェブには、nested_form、collection_select、accepts_nested_attributes_for、fields_forをうまく連携させるための良い質問と回答がたくさんありますが、それでも困惑しています。よろしければ、よろしくお願いします。

目的:新しいisbnレコードを生成します。isbnには多くの貢献者がいる可能性があります。必要に応じて、 ryanbnested_form gemを使用して、フォームに新しい寄稿者フィールドを動的に生成しています。これらのフィールドの1つは、Contributorのすべての名前レコードのcollection_selectドロップダウンを使用します。新しいレコードが作成されると、多くのコントリビューターIDを結合テーブル(contributors_isbns)に書き込む必要があります。

私はこれを少しは機能させていますが、isbnsテーブルの新しいレコードに単一の寄稿者IDを保存できるところまでです。結合テーブルにデータを書き込むことができないようです。

私は3つのモデルを持っています。寄稿者とIsbnsには多対多の関係があり、これはhas_many:throughを使用して行いました。isbnには多くの寄稿者を含めることができ、寄稿者には多くのisbnを含めることができます。それらはcontributors_isbnを介して参加します。

isbn.rb

contributor.rb

contributors_isbn.rb

isbnsコントローラーの場合:

(明らかに、どのビルド方法を使用するかを決めることはできません。)

isbns new.html.erbビューで:

_fields部分では、非常にプレーンなtext_fieldを持つバージョン:

そして、ここでは、どちらも機能しないより洗練されたバージョン:

このコードはここからの答えを使用します。どちらも、行に「Missingblock」エラーが発生しますnested_form_for @isbn

よろしくお願いします。

更新:この種の問題を調べるのに役立つ可能性のあるnested_formgemに関する情報を次に示します。そして、accepts_nested_attributes_forに関する[2009年だがまだ関連性のある投稿][4]があります。

更新2:まあ、ここにあります。私は、collection_selectやhas_many throughを使用せずに、単純なbelongs_to / has_manyの関連付けを使用して、2つの異なるモデルでこれの縮小版を調べてきました。親モデルはContractであり、子モデルはIstcです。ネストされたフォームからレコードを作成することすらできませんでした。ただし、スタックを調べて「警告。保護された属性を一括割り当てできません」というエラーメッセージをグーグルで検索した後:istcs_attributes、行に追加したばかりで:attr_accessible、レコードを追加できるようになりました。かなり重要なビットが欠落しており、RTFMの場合は、gemreadmeにあります。後で更新して、これが関連付けを通じてより複雑なhas_manyで機能するかどうかを確認します。

更新4:[ここ] [5]は、nilレコードのエラーメッセージを処理する方法に関するもう1つの便利な投稿です。

更新5:わずかな迂回-フォームに新しいフィールドのセットを動的に追加すると、子レコードの1つが作成されていました。Duh-子フォーム領域内に「追加」リンクがありました。これが前です:

そしてここに後があります:

更新6、回答後:

ああ、いや。collection_selectが機能していません。コントリビューターモデルの既存のレコードを使用せずに、新しいコントリビューターレコードを追加します。他の誰かもこの問題を抱えていました。何か案は?

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

ruby-on-rails - 4つのうち3つがネストされている場合、同じフォームから異なるモデルを編集できますか? どのように?

フォーム内の複数のモデルをどのように処理しますか? ネストされたモデルが存在することは知っていますが、これが同じ状況かどうかはわかりません。申し訳ありませんが、Rails には少し慣れていません。

私の状況では、プロジェクト プロファイルには、タイトル、日付、説明、モデレーターなどのフィールドがあります。ただし、モデレーターは独自のモデルに常駐しており、これも更新されます。次に、プロジェクト プロファイルに属するファイル (名前、ファイルタイプなど) および連絡先 (first_name、last_name など) モデルがあります。

この場合のモデル間の疑似関係は次のとおりです。 project_profile has_many モデレーター project_profile has_many ファイル project_profile has_one contact

1 つのフォームから 4 つすべてを編集できるようにしたいと考えています。これはどのように可能ですか?ありがとう!

レール 3.0.7 ルビー 1.9.2

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

ruby-on-rails - ネストされたモデルを持つ私のrailsform_forがフォーム値を記憶しないのはなぜですか?

user_orderのインスタンスを返すというヘルパーがありますOrder。およびOrderのネストされた属性を受け入れます。私の(省略形の)フォームは次のようになります。UserAddress

Order.rbモデルコード:

コントローラーコード:

フォームがエラーで送信され、フォームが再レンダリングされた場合、user.emailの値は記憶されません。

なぜそうなのか?

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

ruby-on-rails-3 - 単純なネストされたフォームの隠しフィールドが送信されない

環境: Rails 3.1.0、Ruby 1.9.2

has_one Asset の has_many Positions のポートフォリオ モデルがあります。

これは、ポジション モデルのスキーマです。

ユーザーがポートフォリオを作成するとき、ポートフォリオ名を入力し、株式ティッカーを追加してポジションを追加する必要があります。Jquery が処理を行い、アセットの完全な名前を表示し、asset_id を隠しフィールドに挿入します。

次のように、nested_form と simple_form の両方を使用しています。

問題は、非表示フィールドの asset_id 値が送信されていないことです。パラメータは次のようになります。

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

ruby-on-rails - ネストされたフォームは部分的に2回表示されます

Rails3.1アプリケーションでgemnested_formを使用しています。問題は、「link_to_add」によって生成されたリンクをクリックすると、部分が2回表示されるのに対し、1回だけ表示されることです。そこにいくつかのコードがあります:

形:

レンプレート:

他の誰かが同じ問題を抱えていましたか?

編集:

愚かな間違い、愚かな私。時間を無駄にしてしまったら申し訳ありませんが、問題は「nested_form.js」を2回ロードしていたため、部分を同じ回数追加する関数を呼び出していたということです。

またすみません。