:selected与rails形式的collection_select一起使用时不起作用

时间:2019-05-05 15:30:46

标签: ruby-on-rails ruby-on-rails-5

我正在尝试使用:selected属性来以表单的形式预设值。不幸的是,它被设置为空白值。

 <div class="field">
    <%= form.label :discrepancy_id, 'Failure Category' %>
    <%= form.collection_select :discrepancy_id, Discrepancy.group(:category), :id, :category, {:selected => (Discrepancy.all.select('id').where("category LIKE 'AVOD%'").first)}, :class => 'failure-category', :required => true%>
  </div>

该查询在Rails控制台中正常运行:

Discrepancy.all.select('id').where("category LIKE 'AVOD%'").first

它不适用于:selected属性。 注意:如果我指定id值(即:selected => 1)可以正常工作,但(:selected => Discrepancy.all.select('id')。where(“ category LIKE'AVOD%'”)。first)不能工作中 我不知道出什么事了吗?请让我知道

1 个答案:

答案 0 :(得分:2)

此行返回一个对象,只是因为您使用select id并不会改变您将对象找回的事实。

Secure Sockets Layer
    TLSv1.2 Record Layer: Handshake Protocol: Client Hello
        Content Type: Handshake (22)
        Version: TLS 1.0 (0x0301)
        Length: 512
        Handshake Protocol: Client Hello
            Handshake Type: Client Hello (1)
            Length: 508
            Version: TLS 1.2 (0x0303)

但是您只需要ID

Discrepancy.all.select('id').where("category LIKE 'AVOD%'").first