方法在第二次调用时抛出一个参数错误?
问题描述:
我有以下方法获取2日期间所有的约会:方法在第二次调用时抛出一个参数错误?
def self.search_app(start_date, end_date)
if start_date
start_date = Date.new(start_date['(1i)'].to_i, start_date['(2i)'].to_i, start_date['(3i)'].to_i)
end_date = Date.new(end_date['(1i)'].to_i, end_date['(2i)'].to_i, end_date['(3i)'].to_i)
find(:all, :conditions => {:date_of_appointment => (start_date)..(end_date) })
else
find(:all)
end
end
,并在视图:
<div id="search">
<% form_tag doctor_appointments_path(@person), :method => "get" do %>
<span> From </span>
<%= date_select :start_date, :start_date %>
<span> Until </span>
<%= date_select :end_date, :end_date %>
<%= submit_tag "Search", :name => nil %>
<% end %>
</div>
控制器代码:
def index
@appointments = person.appointments.search_app(params[:start_date], params[:end_date])
end
方法伟大工程第一它的时间,但如果我再次尝试搜索我得到一个参数错误:
Invalid date
{"start_date"=>{"start_date(1i)"=>"2010",
"start_date(2i)"=>"8",
"start_date(3i)"=>"5"},
"doctor_id"=>"1",
"end_date"=>{"end_date(3i)"=>"17",
"end_date(1i)"=>"2010",
"end_date(2i)"=>"8"}}
不知何故,它通过医生Id与Date.new方法?
任何想法如何我可以解决这个问题?
感谢
答
date_select :start_date, :start_date
告诉轨,有一个@start_date
对象,这将是可用,并且.start_date
属性将由日期选择来提供。
您可能会更好使用select_date
,您可以通过该日期来使用日期,并且需要一个前缀来区分开始日期和结束日期。例如:
select_date Date.current, :prefix => 'start'
+0
非常感谢 – 2010-08-17 22:26:01
确定它停止在一起工作?为什么医生的身份证号码与日期的值相呼应? – 2010-08-17 21:45:46