0

私のレールアプリでは、「devise」を使用しています。ユーザーに「機関」選択フィールドと「キャンパス」選択フィールドも追加します。ユーザーが1つの「機関」を選択すると、フィールド「キャンパス」が変更され、これまでのところすべて問題ありません。ユーザーのプロファイルを編集したいときが問題です.

編集に行くとき、選択フィールドのデフォルト値をユーザーが属するものにしたいと思います。これにより、「機関」のみの問題が解決されました。

= select_tag(:institution, options_for_select(Instituicao.all.map {|institution| institution.name, institution.id] },
      [current_user.campus.institution.name, current_user.campus.institution.id])

しかし、「キャンパス」については、ユーザーがすでに属しているユーザーの「キャンパス」としてデフォルト値を取得することができませんでした。これが現在の「キャンパス」選択の方法です。

= select_tag(:campus, options_for_select(Institution.first.campus.map {|campus| [campus.name, campus.id] })
4

2 に答える 2

0
= select_tag(:campus, 
  options_for_select(
    Institution.all.campus.map {|campus| [campus.name, campus.id] },
    current_user.campus.id # ???  don't really know how your relationships are set up
  )

ユーザーはキャンパスに属しており、キャンパスは機関に属しているように見えますが、確認するのに十分なコードを投稿していません。

最初の実際の例は、次のように縮小できます。

= select_tag(:institution, 
  options_for_select(
    Instituicao.all.map {|institution| institution.name, institution.id] },
    current_user.campus.institution.id)
于 2012-04-29T23:38:16.990 に答える
0

私自身の質問を解決する:

次のようにキャンパス選択フィールドを実行するだけです。

= select_tag(:campus, options_for_select(current_user.campus.institution.campus.map {|campus| [campus.name, campus.id] }))
于 2012-04-30T14:32:41.870 に答える