問題タブ [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.
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 (ジョイント テーブル)。
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
jquery - Ruby on Rails - Collection_select、オプション クラス
コレクションのモデル属性を select-options クラスに渡すことは可能ですか?
Questmark は、BankConnection の属性を使用したい場所を示しています。属性の名前は customer_id です。
この背景: Rails 用のチェーン プラグインを使用したいので、クラスを特定の顧客 ID に設定する必要があります。
ご協力いただきありがとうございます。
トバイアス
ruby-on-rails - Rails 4.2 - has_many を構築する方法: collection_select との関連付け
私は現在、これらのモデルでRails 4.2を使用しています:
これは単純な多対多の関係であり、ユーザーは多くのアクセサリを「所有」でき、アクセサリは多くのユーザーが「所有」できます。
次の方法でルートを設定しました。
このようにして、ユーザーは自分の「アクセサリ」パス ( /users/1/accessories
) に移動してアクセサリのリストを表示したり、アカウントに新しいアクセサリの関連付けを追加したりできます。
アクセサリ パスをレンダリングするビューは次のとおりです。
これは、現在のアクセサリのテーブルをレンダリングし、追加する複数のアクセサリを選択できる collection_select ボックスを構築します。Bootstrap スタイルを削除して、これを単純化しました。
最後に、関連するコントローラー アクションを次に示します。
今問題:
データベースに手動で入力された値が既にある場合にフォームを送信すると、実際には現在保存されているすべての値が削除され、新しい値は追加されません。
/li>何も選択されていない状態でフォームを送信すると、次のエラーが表示されます。
/li>
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の一意の文字列です-データベース構造は私の考えではありませんでした.私はそれを扱うだけです.