[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
2022-02-05 23:43:23
質問内容
のRails APIドキュメントを見ているところです。
collection_select
であり、神懸かり的である。
見出しはこうです。
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
そして、これが唯一のサンプルコードです。
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, :prompt => true)
どなたか、簡単なアソシエーション(例えば
User
ハッシュマニー
Plans
であり、かつ
Plan
に属しています。
User
)、構文で何を使いたいのか、その理由は?
編集1:
また、その仕組みを
form_helper
または通常のフォームを使用してください。ウェブ開発を理解しているが、Railsについては「比較的新しい」ウェブ開発者にこれを説明すると想像してください。あなたならどう説明しますか?
どのように解決するのか?
collection_select(
:post, # field namespace
:author_id, # field name
# result of these two params will be: <select name="post[author_id]">...
# then you should specify some collection or array of rows.
# It can be Author.where(..).order(..) or something like that.
# In your example it is:
Author.all,
# then you should specify methods for generating options
:id, # this is name of method that will be called for every row, result will be set as key
:name_with_initial, # this is name of method that will be called for every row, result will be set as value
# as a result, every option will be generated by the following rule:
# <option value=#{author.id}>#{author.name_with_initial}</option>
# 'author' is an element in the collection or array
:prompt => true # then you can specify some params. You can find them in the docs.
)
あるいは、あなたの例は次のようなコードで表すことができます。
<select name="post[author_id]">
<% Author.all.each do |author| %>
<option value="<%= author.id %>"><%= author.name_with_initial %></option>
<% end %>
</select>
これは
FormBuilder
ということですが
FormOptionsHelper
関連
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Ruby on Railsでsimple_formを使うさまざまな方法|何が違うの?
-
[解決済み] Ruby: public static メソッドを作るには?
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] ルビーオンレール モデルから明確な値を選択する
-
[解決済み] Railsでグループとカウント
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] rspecにおけるassignsの意味
-
[解決済み] Rails / Haml: 投稿フォームを作成するには?
-
[解決済み] RubyとRailsの "Date.today "フォーマット
-
[解決済み] Railsでグループとカウント
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController