【问题标题】:How to dropdown select in rails form如何在rails表单中进行下拉选择
【发布时间】:2017-01-23 02:38:16
【问题描述】:

如何在 Rails 表单中进行下拉选择?

我试过了

<div class="field">
     <%= f.label :car_id %>
    <%= select("car", "car_id", @cars) %>
  </div>

  <div class="field">
    <%= f.label :firstname %>
    <%= f.text_field :firstname %>
  </div>

  <div class="field">
    <%= f.label :lastname %>
    <%= f.text_field :lastname %>
  </div>

  <div class="field">
    <%= f.label :dateofbirth %>
    <%= f.date_select :dateofbirth %>
  </div>

但我得到这个错误

undefined method `empty?' for nil:NilClass

在这一行。

  <%= select("car", "car_id", @cars) %>

【问题讨论】:

    标签: ruby-on-rails forms dropdown


    【解决方案1】:

    试试

    <%= f.select :car_id, @cars.collect { |car| [car.name, car.id] } %>
    

    您需要在控制器方法中设置@cars 实例变量才能使上述代码行工作。

    我假设car 有一个name 字段。将 name 替换为您的 Car 模型的字段,该字段足以用作标签。

    对于selectlist 中的每个选项,name 将被设置为标签,id 将被设置为value

    有关更多信息,请阅读文档here

    【讨论】:

    • 对于downvoter:你能告诉我我的回答有什么问题吗?我很想知道。
    • 感谢您的回答,我试过但没有奏效,所以顺便说一句,投反对票的不是我 :)
    • 同样的错误 undefined method `empty?'对于 nil:NilClass
    • @user3348410 试试这个&lt;%= f.select :car_id, Car.all.collect { |car| [car.name, car.id] } %&gt; 如果您的cars 表中没有name 字段,请将其替换为与cars 表不同的字段。您收到该错误是因为 @carsnil,因为您没有在控制器方法中设置它。
    • @user3348410 我很高兴它成功了。在控制器方法中添加@cars = Car.all。现在,您可以在视图中使用@cars.collect { |car| [car.name, car.id] }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2016-09-24
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多