0

collection_select を使用してドロップダウンリストを作成しました

<%= collection_select(:page, :user_id, @users, :id, :full_name) %>

その部分はうまくいきます。コントローラーを使用して保存/処理するのに問題があります.APIdockはその部分ではあまり役に立たず、私が見つけた1つの例を取得できませんでした. コントローラーで選択した値を処理する方法を誰かに説明してもらえますか?

4

2 に答える 2

1

あなたには価値があるでしょう

params[:page][:user_id]

これは、フォームで選択された値に対応します。params変数を調べていることがわかります。

IT は数字で、選択したユーザーの ID です。次の方法でユーザーをロードできます

@user = User.find(params[:page][:user_id])

しかし、それは役に立たない。実際、user_idページのプロパティにアクセスできる場合は、通常の

@page.update_attributes(params[:page]) # in the update action

また

@page.create(params[:page]) # in the create action

としてページにユーザーを取得します@page.user

于 2012-10-01T11:51:10.220 に答える
0

モデルにページ値を格納するには、user.rb で「has_many :pages」を指定する必要があります。

@user = User.find(params[:user_id])
@user.pages = params[:page]

params[:page] は、現在のモデル レコードに格納される値の配列を返します。

于 2012-10-01T12:04:46.270 に答える