Rails 4:将Active Record生成的集合从视图移动到模型

时间:2016-06-10 11:51:10

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

从Rails开始,我想将ORM部分从视图移动到模型。

怎么做?

示例:

/
  (?:               : non capture group
    \b$kw1          : keyword 1
    (?:\s+\w+){0,4} : followed by 0 to 4 other word
    \s+             : space(s)
    $kw2\b          : keyword 2
  )
|
  (?:               : non capture group
    \b$kw2          : keyword 2
    (?:\s+\w+){0,4} : followed by 0 to 4 other word
    \s+             : space(s)
    $kw1\b          : keyword 1
  )
/

感谢。

路易斯,

感谢您将我指向范围。我解决了这个问题如下。

 <%= f.collection_check_boxes :instructor_ids, Instructor.joins(:events).where(events: { :start_time => Date.today.beginning_of_week..Date.today.end_of_week }).group("instructor_id").having("count(instructor_id) < 4"), :id, :name do |ib| %>
  <%= ib.label(class: "checkbox-inline input_checkbox") {ib.check_box(class: "checkbox") + ib.text } %>
 <% end %>

应用程序/模型/ event.rb

 app/views/events/_form.html.erb

 <%= f.collection_check_boxes :instructor_ids, Event.instructor_week_limit, :id, :name do |ib| %>
  <%= ib.label(class: "checkbox-inline input_checkbox") {ib.check_box(class: "checkbox") + ib.text } %>
 <% end %>

1 个答案:

答案 0 :(得分:2)

范围应该为您完成工作。你仍然会使用collection_check_boxes,但只定义关系id。本指南将帮助您: http://guides.rubyonrails.org/active_record_querying.html#applying-a-default-scope

最好!