【问题标题】:How to create multiple selects in Rails and haml如何在 Rails 和 haml 中创建多个选择
【发布时间】:2020-09-24 08:10:18
【问题描述】:

我有一个数据表,如图所示

id | Resource | Access
___________________________
1 | Fee records | can_read
2 | Fee records | no_access
3 | Fee records | can_write
4 | Class register | can_read
5 | Class register | no_access
6 | Class register | can_write

我希望创建一个 haml 选择,以便我将左侧的 resourceaccess 作为选择的选项。类似的东西

Fee records -> [can_read, no_access, can_write]
Class register -> [can_read, no_access, can_write]

当用户选择 @987654325 @option @plufe @987654326 @我希望从上表中返回ID @987654328 @option @987654328 @option @ @987654329 @选择 @987654329 @,我希望获得ID @987654543330 @。所以基本上我会有两个选择,但选择的选项必须返回上表中的 id。 resource 也不应该重复。在这种情况下,只有 Fee recordsClass register 应该在左侧,并且相应的选项作为右侧的下拉菜单。我将如何在 Ruby on Rails 和 haml 上实现这一点?

【问题讨论】:

    标签: ruby-on-rails postgresql haml


    【解决方案1】:

    这就是我为解决上述问题所做的。在控制器的新方法中,我有

    def new
     @permissions = ["no_access", "can_read", "can_write"]
     @unique_permissions = Model.select(:resource).map(&:resource).uniq
    end
    

    @unique_permissions = Model.select(:resource).map(&:resource).uniq 行帮助我从上表中获取唯一值,因此我将收集 [Fee_records, Class_register]

    在哈姆尔,我会有

    - @unique_permissions.each do |permission|
          .row
            .col-md-4
              = permission
            = f.select permission, @permissions, {}, class: "form-control col-md-8"
      
    

    这将给我两个选择 @permissions 包含 ["no_access", "can_read", "can_write"] 的数组作为每个选择的选项。 在控制器中,我将允许参数为 Fee_recordsClass_register 在创建动作中,我会从参数中获取permission_keys,基本上是获取[Fee_records, Class_register] 作为键。 要获取与用户选择的选项相关的特定 id,我将遍历键,如

    permission_keys.each do |permission|
      permission_id = Model.find_by(
        resource: permission, access: permission_params[:permission]
       ).id
      # other code
    end
    

    【讨论】:

      猜你喜欢
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      相关资源
      最近更新 更多