我有scaffold student name:string is_active:boolean
和scaffold attendance student_id:integer event_id:integer
Student has_many :attendances
Attendance belongs_to :student
出勤/ _form.html.haml:
= simple_form_for(@attendance) do |f|
= f.error_notification
.form-inputs
= f.association :student
= f.association :event
.form-actions
= f.button :submit
如何编辑关联下拉菜单,以查看只有is_active : true
的学生?
答案 0 :(得分:1)
您需要将逻辑与观点分开。因此,在使用上述表单的控制器方法中,您可以在下拉菜单中定义要查看的内容:
def controller_method
@active_students = Student.where(is_active: true)
end
在表单中的关联中,您可以指定下拉菜单collection等于@active_students
:
f.association :student, collection: @active_students
或者,在一行中:
f.association :student, collection: Student.where(is_active: true)