我已经在我的Rails应用程序中为我的一个表单创建了一个下拉列表。
我使用的是简单形式。
我的下拉字段如下所示:
<%= f.input :event_id, collection: Event.where(type: ["track and field", "ice", "gymnastics"])
首先..我觉得在视图中有这个查询是非常糟糕的。但是,当我将查询移动到控制器操作时,我遇到表单错误(例如必填字段未填写),当页面刷新时,下拉列表只显示一个整数(id)而不是它之前显示的名称。我觉得这个参数正在丢失。
思想?
答案 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) %>