设置选择字段的默认值,该字段取决于rails中的另一个选择字段

时间:2012-04-29 22:46:11

标签: ruby-on-rails ruby view

在我的rails应用中,我正在使用'设计'。 我还为用户添加了“Institution”选择字段和“Campus”选择字段, 当用户选择一个“机构”时,“校园”字段改变 到目前为止一切正常,我的问题是当我想编辑用户的个人资料时。

当我去编辑时,我希望选择字段的默认值是用户所属的值。 这只解决了“机构”的问题:

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

但是对于“Campus”我无法将其作为用户的“校园”获得默认值,这就是现在“校园”的选择:

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

解决我自己的问题:

只需执行校园选择字段:

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