問題タブ [collection-select]

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

ruby-on-rails-4 - Rails 4:フォームでcollection_selectを使用して選択したアイテムの値[id]を取得するにはどうすればよいですか

私のコントローラーでは、次のことをしたいと思います。

@food.subs は、たとえば次のような ActiveRecord::Associations::CollectionProxy を返します。

私のフォームで f.submit をクリックすると、選択したアイテム (@food) の関連付けに新しい @sub をプッシュする push_sub アクションがトリガーされます。

コントローラーで使用できるように、選択した食品の ID をフォームで取得する方法がわかりません。

ここに私のフォームがあります:

よろしくお願いいたします。

明けましておめでとうございます。

アントワーヌ

アップデート

私は has_many スルー リレーションシップを持つ 3 つのモデルを持っています: Food (例: チョコレート)、Sub (チョコレートの代替食品)、Joint (ジョイント テーブル)。

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

ruby-on-rails - Rails has_many :collection_select フォーム ヘルパーによるスルー

has_many :through アソシエーションを保存するフォームの作成に問題があります。json を投稿して保存に成功しましたが、フォームはまだ機能しません。フォームの送信によって作成されたリクエスト パラメータは機能しません。解決策を教えてくれる助けがあれば、これ以上時間を失うことはありません。前もって感謝します。

編集済み -- 追加の forms_for 試行と、作成された params json が下部で同様に機能しない --

動作する Json 投稿リクエスト パラメータ:

保存しない Rails フォーム生成パラメータ。

...および関連するコード サンプル...

著者モデル

投稿モデル(現在、投稿者が多数いる著者のみに取り組んでおり、その逆ではありません)

PostAuthor モデル

コントローラーの新規/作成アクションの作成

作者/_form.html.erb

スキーマ

編集 - 追加された詳細 - デューデリジェンスのために、fields_for も使用してみましたが、データベースに保存されないさらに混乱した json が生成されます。「0」キーがどこから来たのかわかりません。私はこれにこだわっています。どんな助けでも大歓迎です。

fields_for

生成されたパラメーター to_json

0 投票する
0 に答える
194 参照

jquery - Ruby on Rails - Collection_select、オプション クラス

コレクションのモデル属性を select-options クラスに渡すことは可能ですか?

Questmark は、BankConnection の属性を使用したい場所を示しています。属性の名前は customer_id です。

この背景: Rails 用のチェーン プラグインを使用したいので、クラスを特定の顧客 ID に設定する必要があります。

ご協力いただきありがとうございます。

トバイアス

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

ruby-on-rails - Rails 4.2 - has_many を構築する方法: collection_select との関連付け

私は現在、これらのモデルでRails 4.2を使用しています:

これは単純な多対多の関係であり、ユーザーは多くのアクセサリを「所有」でき、アクセサリは多くのユーザーが「所有」できます。

次の方法でルートを設定しました。

このようにして、ユーザーは自分の「アクセサリ」パス ( /users/1/accessories) に移動してアクセサリのリストを表示したり、アカウントに新しいアクセサリの関連付けを追加したりできます。

アクセサリ パスをレンダリングするビューは次のとおりです。

これは、現在のアクセサリのテーブルをレンダリングし、追加する複数のアクセサリを選択できる collection_select ボックスを構築します。Bootstrap スタイルを削除して、これを単純化しました。

最後に、関連するコントローラー アクションを次に示します。

今問題:

  1. データベースに手動で入力された値が既にある場合にフォームを送信すると、実際には現在保存されているすべての値が削除され、新しい値は追加されません。

    /li>
  2. 何も選択されていない状態でフォームを送信すると、次のエラーが表示されます。

    /li>
0 投票する
1 に答える
244 参照

ruby-on-rails-4 - RoR: edit ビューでデータベースから collection_select に値を設定する方法 (1:many 関係)

私は現在、ネストされたフォームとさらに別のデータテーブルの値を使用してコレクションを選択することで、1:n の関係を持つ複雑な Rails フォームを作成しています。

これまでのところ、更新前にユーザーが正しい値を選択しないと、collection_select の値リストの最初のエントリでデータベースの値が上書きされます。collection_select の初期値を正しく設定する必要があります。

私はすでに SO に関する多くの質問を読みましたが、最も関連性の高いものは次のとおりでした: f-collection-select-not-displaying-the-selected-value

まだ欠けている唯一のもの(私は願っています!)は、データベースからのフォームフィールドの値の設定です。そのため、ユーザーが選択に触れていなくても、選択可能な値からのデフォルト値で上書きされません.

このスニペットは、私のコードと上記の質問に対する解決策から派生したものであり、間違っています。

人に多くのものを持たせ、validthings には可能な値が含まれています。

モノの表には、有効なモノの表にもあるモノの文字列のみが存在します。collection_select の選択されたパラメーターに、有効なテーブルの値のリストで識別できる、things テーブルの文字列を指定することができます。

これは間違っていることです:

@person.things.map(&:id).Thing.to_s

はい、表の person and things と validthings では、列の名前は "Thing" です。これはテーブルvalidthingsの一意の文字列です-データベース構造は私の考えではありませんでした.私はそれを扱うだけです.