下拉列表只显示表单错误

时间:2016-05-10 15:12:59

标签: ruby-on-rails ruby forms ruby-on-rails-4 dropdownbox

我已经在我的Rails应用程序中为我的一个表单创建了一个下拉列表。

我使用的是简单形式。

我的下拉字段如下所示:

<%= f.input :event_id, collection: Event.where(type: ["track and field", "ice", "gymnastics"])

首先..我觉得在视图中有这个查询是非常糟糕的。但是,当我将查询移动到控制器操作时,我遇到表单错误(例如必填字段未填写),当页面刷新时,下拉列表只显示一个整数(id)而不是它之前显示的名称。我觉得这个参数正在丢失。

思想?

1 个答案:

答案 0 :(得分:0)

我要做的第一件事就是通过这样的范围将查询委托给模型:

# app/models/event.rb
class Event < ActiveRecord::Base
  ...
    #Event.special_events
    scope :special_events ->{ where(type: ["track and field", "ice", "gymnastics"]) }
  ...
end

现在在你看来你可以做这样的事情

<%= f.input :event_id, collection: Event.special_events) %>