从选择选项中搜索模型

时间:2014-09-15 13:37:19

标签: ruby-on-rails

我是RoR的新手,我想使用带有月份的select标签搜索生日,例如:

<%= form_tag birthdays_path, :method => 'get' do %>
  <%= select_month (Date.today) %>
  <%= submit_tag "Search", :name => nil %>
<% end %>

我有一个名字和生日日期的人物模型,我想在那里搜索并匹配月份,但我不知道如何获取参数。

1 个答案:

答案 0 :(得分:0)

模特:

class Person < ActiveRecord::Base
  def self.birthday_month month
    date = Date.current.change(month: month.to_i)
    where("#{table_name}.birthday BETWEEN :from AND :to", 
      { from: date.at_beginning_of_month, to: date.at_end_of_month })
  end
end

控制器:

class PeopleController < ApplicationController
  def index
    @people = Person.birthday_month(params[:month])
  end
end

响应视图(/people/index.js.erb):

alert('<%= @people.map(&:name).join(', ') %>')

但请注意,搜索中的年份总是当前年份。否则,您还将添加年份参数或定义默认搜索年份。

相关问题