我在rails 4中遇到了groups_collection_select的问题,所以我需要你的帮助。
我有这个型号:
class Event < ActiveRecord::Base
has_many :appointments
belongs_to :user
scope :evento_sin, -> { where(available: "1") }
end
class User < ActiveRecord::Base
has_many :events
has_many :appointments
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
def medic_with_spec
"#{especialidad}, #{name} #{lastname}"
end
end
我的观点有:
<div class="field">
<%= f.label :user_id, "Médicos" %><br />
<%=select("appointment", "user_id", @usuarios.collect {|p| [p.especialidad+" - "+p.lastname + ", " +p.name, p.id ] }, { include_blank: true }) %>
</div>
<div class="field">
<%= f.label :event_id, "Consultas Disponibles" %><br />
<%= f.grouped_collection_select :event_id, @usuarios.order(:name),
:eventos.evento_sin, :id, :id, :start_time, include_blank: true %>
但我收到:未定义的方法`evento_sin&#39; for:events:Symbol
此代码会发生什么?
谢谢你的帮助
答案 0 :(得分:0)
未定义的方法`evento_sin&#39; for:events:Symbol
您的:evento_sin
模型中定义了 范围 Event
,并且您正在使用它:eventos.evento_sin
而不是#{1}} 39;没有意义。
您的grouped_collection_select
应该是这样的
<%= f.grouped_collection_select :event_id, @usuarios.order(:name),
Event.evento_sin, :id, :id, :start_time, include_blank: true %>