【问题标题】:How can I add multiple classes to a Rails form input with erb?如何使用 erb 将多个类添加到 Rails 表单输入?
【发布时间】:2014-08-20 09:10:39
【问题描述】:

所以这就是我想做的:

<% for x in 6..10 %>
  <%= form_for(current_user.responses.new, html:{class: 'col-xs-2 col-md-1 col-lg-1 vcenter center'}) do |f, index| %>
    <%= f.text_field :response_value, label: false, :class => "my-width <%= x %>" %>
  <% end %>
<% end %>

但它不起作用。我想在输入字段上有两个类,一个是使用 html 的普通 css 类。另一个使用 erb 变量,在本例中为“x”。

我试过了

<%= f.text_field :response_value, label: false, :class => "my-width center vcenter", :class => x %>

仅分配第二个:class,并覆盖第一个。

如何将这两个类(“my-width”和 x)分配给表单输入字段?

【问题讨论】:

    标签: css ruby-on-rails forms


    【解决方案1】:

    发布一个新的答案,因为 Rails4 有更好的方法:

    <%= f.text_field :response_value, label: false, class: ["my-width", x] %>
    

    【讨论】:

      【解决方案2】:
      <%= f.text_field :response_value, label: false, :class => "my-width <%= x %>"
      

      不是有效的 ruby​​ 语法。我很惊讶你没有收到错误。

      使用字符串插值:

      <%= f.text_field :response_value, label: false, :class => "my-width #{x}" %>
      

      另外值得注意的是,您应该使用纯数字的 html 类。

      类似:

      :class => "my-width-#{x}"
      

      有效。

      【讨论】:

      • 我猜没有错误,因为它在一个字符串中? (所以输出就像 )
      【解决方案3】:
      <%= f.text_field :response_value, label: false, :class => "my-width <%= x %>" %>
      

      这一行实际上没有任何意义,因为您将 erb 标记放在 erb 标记内的字符串中...... 试试

      <%= f.text_field :response_value, label: false, :class => "my-width #{x}" %>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多