問題タブ [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.
ruby-on-rails - Rails 3.2 nested_form gem: fields_for partial で link_to edit_model_path() を作成する方法
ネストされたモーダルのフィールドをレンダリングするために部分メソッドを使用するネストされたフォームがあります
私のパーシャルでは、ネストされたモデル インスタンスを編集するためのリンクが必要です。
ただし@element
、パーシャルでは使用できません。正しい要素を参照するにはどうすればよいですか?
編集...
Bradleyからのコメントを使用したソリューション
ruby-on-rails - 未定義のメソッド「simple_nested_form_for」
nested_form Rails プラグインを使用しようとすると、このエラーが発生します。何が問題なのですか?
Gemファイルを次のように設定しましたgem "nested_form", :git => 'git://github.com/ryanb/nested_form.git'
プラグインをインストールし (Rails 3.1 を使用しています)、サーバーを再起動しました。
編集:また、nested_form.js を /assets/javascript/ フォルダーに移動しました。これは、ソースでクリックすると、パブリック フォルダーに読み込むとルーティング エラーが発生したためです。
ruby-on-rails-3 - rails ネストされたリソースと初期化されたリソースのルート
ネストされたフォーム/リソースとルーティングを使用する場合のレールの通常の動作に問題があります。
単語と定義の 2 つのテーブルがあります...
単語には多くの定義がありますが、少なくとも 1 つの定義が存在するまで単語を作成しません。
モデルとコントローラー側のすべてが機能しますが、フォーム ヘルパーの処理方法がわかりません。
これは完全に機能しますが、@word が実際に存在し、新しい UNSAVED レコードでない場合に限ります。コントローラの IE では、find_or_initialize_by
Word の呼び出しを行ってから、その定義を作成しています。
この言葉ですが、その言葉が存在しない場合に限ります。IE でこの構成を使用して編集しようとすると、奇妙な URL が表示されます (これは機能しません)。 words/12345/definition/12345
ヘルパーを使用してみましurl_for
たが、上記と同様の結果が得られました...
他のアイデアはありますか?
ruby-on-rails-3 - 見つかりませんでしたID なし、ネストされた属性あり
一度に複数のレコードを更新するために使用しようとしている非常に単純なフォームがあります。私は Rails 3 を使用しています。すべての Railscast などを経験しており、この時点で髪を引っ張っています。私はDeviseを使用しており、連絡先コントローラーを持っています。ユーザーには多くの連絡先があり、連絡先の入れ子になった属性を受け入れます。フォームは次のようになります。
フォームは正しく表示されますが、送信時に「ID がないと連絡先が見つかりません」というメッセージが表示されます。コントローラーは次のようになります。
パラメータは正しいように見え、ID は存在し、正しいようですが、保存が機能しません! ここで明らかな何かが欠けていると確信しています。
ruby-on-rails - form_forタグとネストされたフォーム-コントローラーからカスタムメソッドを使用する
Railsは初めてで、大学のメンバー(教師と学生)が投稿を作成してコメントできるアプリケーションを作成しています。後で、ネスト(祖先)とポイントシステムを追加したいと思います。
投稿、コメント、メンバーモデルがあります。PostモデルはScaffoldingを介して作成され、MemberモデルはDeviseの助けを借りて作成され、Commentは単なるモデルです。
投稿のショーページで、投稿の下にコメントを入れたいのですが、ある程度の進歩がありました(SOのおかげで、かなりのことを知るようになりました)が、投稿しようとすると問題が発生します。空白のコメント、railsは編集ページにリダイレクトしていました。レールが表示ページと表示エラーのみにとどまるようにこれを変更するにはどうすればよいですか?
このために少し検索し、post_controller.rbに新しいメソッド「update_comments」を作成し、以下のコードのようにforms_forタグ属性を変更しようとしましたが、送信時にルーティングエラーが発生します。
app / models / member.rb
app / models / post.rb
app / models / comment.rb
config / routers.rb
app / controllers / posts_controller.rb
app / views / posts / show.html.erb
私のショーページの画像:http: //i.stack.imgur.com/TBgKy.png
コメントの作成について:http: //i.stack.imgur.com/JlWeR.png
アップデート:
ケンが言ったことに従って、ここで振り返って変更を加えました。方法はわかりませんが、今のところは機能します。
app / controllers / posts_controller.rb
ruby-on-rails-3 - has_many:throughアソシエーションとその結合モデル属性はどのように相互作用しますか?
結合モデルで属性を設定する問題に頭を悩ませていますか?
私のモデル:
app / controllers/contracts_controller.rbの新しいアクション
app / views / Contracts/_fields.html.hamlにある私のビューの部分
Railsガイドを読んだり、railscast#196と#197を見て、インターネット上でネストされた属性を調べたりすると、app / controllers/contracts_controller.rbの新しいアクションの@contract.codes.build行がビルドされただけではないことがわかりました。コードオブジェクトですが、コードラインオブジェクトも作成しました。app / controllers / Contracts_controller.rbの新しいアクションを上記のように残しておくと、まさにそれが起こります。私のコードラインテーブルは次のように入力されます。
しかし、私の見解を見ると、実際にunits_allocを設定したいと思います。この行は、コードラインモデルにあるため、 @contract.codes.buildからunits_allocにアクセスできません。app / controllers / Contracts_controller.rbの新しいアクションに@contract.codelines.buildを追加しました。これで、units_allocがビューに表示され、設定できるようになりました。しかし、今ではコードラインテーブルに2つの行があります。1つは@contract.codes.buildの結果であり、コードオブジェクトとコードラインオブジェクトの両方がビルドされ、2番目の行は@ Contract.codelines.buildの結果であり、私のコードラインテーブルは次のとおりです。
コードオブジェクトとコードラインオブジェクトの両方がビルドされる@contract.codes.buildで指定された最初のビルドを介して、units_allocにアクセスできるようにするべきではありませんか?
この問題についての私の理解が正しいかどうか誰かが知っていますか、それともすべてが明らかになるリソースを教えていただけますか?
後から考えたように、コードラインを使用してコードオブジェクトを作成しましたが、同じ結果が得られました。
提案をありがとう。
更新 コードラインテーブルに、関連するすべてのIDが次のように設定されたレコードを1つだけ含めることができます。
私のコンソール:
pgadmin3を使用して、コードラインテーブルを確認すると、次の1つのレコードのみが取得されます。
ここでのテストは、contracts_controller new/createアクションを取得して同じことを行うことです。
ruby-on-rails - フォームでdate_selectを使用し、日付が空の場合にrejecct_ifしたい
start_date と end_date を含む期間モデルがあります。Topic モデルに属します。
私のトピック フォームでは、期間も管理したいと考えています。最初に、期間内の 2 つの日付に対して 2 つのテキスト フィールドを使用しました。また、reject_if end_date が nil です。
できます。そして数か月後、日付を入力するためのいくつかの選択ステートメントを表示するdate_selectを使用するようにフォームを変更しました。
これを行ったとき、各選択が次のようになることがわかりました。
1i
これは、reject_if が機能しなくなったことを意味し、すべてが拒否されることに注意してください。次のように変更する必要があります。
これは機能しますが、以前ほど良くはありません (日付の年だけをチェックするとエラーが発生しやすいようです)。
date_select を使用するときに拒否する正しい方法はありますか?
ruby-on-rails - ネストされたリソースの 1 つが作成されていません
まず、これを見て時間を割いてくれてありがとう。ありがとう :)。
そのため、最終的に、最上位のリソースの _form.html.erb にリソースを適切にネストする方法を見つけました。私の最終的なプロジェクトには、上から下に次のネストされたリソースがあります: IDFs => スイッチ => ジャック。現在、新しいジャックを作成することですべてが機能しています...次のエラーが表示されます:
私のモデルはすべてスキャフォールディングされており、関連するモデル、ルートを修正するコントローラー、および _form.html.erb ファイルを除いて、それらのファイルの多くには触れていません。関連すると思われるコードを投稿しますが、それを見た場合に私を助けるのに役立つ何かが他にある場合は、お知らせください.
app/controllers/jacks_controller.rb:
アプリ/ビュー/スイッチ/_form.html.erb:
app/views/jacks/_form.html.erb:
スタック オーバーフローに関するいくつかの同様の質問からいくつかのコードを実装しようとしましたが、何も機能していないようです。どんな助けでも大歓迎です。また、他に見たいコードがあれば教えてください。
再度、感謝します!
ruby-on-rails - Nested_form_for、link_to_add で、ラジオ ボタンが選択された項目に関する十分な情報を送信していない
私は Ryan Bates の nested_form コードを使用しており、ラジオ ボタン フィールドを含むネストされたフォームで問題が発生しています (フィールドはコレクション内のブール値であり、メンバーの 1 つだけが true である必要があります)。
nested_form_for 内のラジオ ボタンをレンダリングする私のコードは次のとおりです。
(通常の form_for 構文を使用して、nested_form_for オブジェクトで radio_button を呼び出した場合、ラジオ ボタンは、チェックをオンにしても他のチェックを外さないという点で、ラジオ ボタンのようには動作しません)
通常、ユーザーがラジオ ボタンの 1 つをクリックして選択したアイテムを変更すると、新しいアイテムの ID がパラメーターで送信されるため、問題ありません (コントローラーの更新メソッドで少し醜い解析を行った後)。しかし...実行時にlink_to_addで追加された新しいアイテムでは、送信するIDがないため、送信されるのは次のとおりです。
コレクションの1つの要素だけで値をオンにする必要がある場合に、ネストされた形式でラジオボタンを実装する適切な方法を誰かが私に説明できますか?
ruby-on-rails - form_forポリモーフィック関係を使用するため
多くのトランザクションを持つことができるユーザーモデルがあります。トランザクションは、type1、type2、またはtype3のいずれかであり、タイプごとに異なる属性のセットがあります。例:type1には、属性a、b、およびcが含まれています。type2には、属性a、c、d、およびeが含まれています。ユーザー、トランザクション、およびタイプのモデルは次のとおりです。
さて、htmlフォームを生成する際に、私は
後のform_forヘルパーでは、type1モデルの属性のユーザー入力データを収集したいと思います。誰かが何を入れるべきかを手伝ってもらえますか...後のform_forヘルパーで?@ user.transactions.build_type1を試しましたが、エラーが表示されます。何がうまくいかなかったのでしょうか?