【问题标题】:set default value for a select field which depends on another select field in rails为依赖于rails中另一个选择字段的选择字段设置默认值
【发布时间】:2012-04-29 22:46:11
【问题描述】:

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

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

= 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”,我无法将默认值作为他已经属于的用户的“Campus”,这就是“Campus”选择现在的方式:

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

【问题讨论】:

  • 已经解决了,但是要等5个小时才能给出答案..

标签: ruby-on-rails ruby view


【解决方案1】:
= 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)

【讨论】:

  • 这不起作用有几个原因:Institution.all 是一个数组,它没有campus 方法。你的建议会给数据库中的所有校园,我只想要属于所选“机构”的校园。但是谢谢男人。 =]
【解决方案2】:

解决我自己的问题:

只需像这样执行 Campus select 字段:

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

【讨论】:

    猜你喜欢
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2019-07-26
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多