我正在通过StackSkills完成一个课程,他们的问题链接已经消失。
我正在制定商业计划。到目前为止,我已将数据库设置为存储发票信息(日期,税率,销售人员,公司名称)。我按照说明在发票清单中创建了一个搜索字段,允许我按日期范围进行搜索。当我尝试加载发票清单时,收到错误消息:
ArgumentError in InvoicesController#index
wrong number of arguments (given 1, expected 0)
Extracted source (around line #7):
5 # GET /invoices.json
6 def index
7 @search = InvoiceSearch.new(params[:search])
8 @invoices = @search.scope
9 end
这是我的InvoicesController.rb文件中添加的练习代码:
def index
@search = InvoiceSearch.new(params[:search])
@invoices = @search.scope
end
这是本课程中创建的invoice_Search.rb:
class InvoiceSearch
attr_reader :date_from, :date_to
def initializ(params)
params ||={}
@date_from = parsed_date(params[:date_from], 7.days.ago.to_date.to_s)
@date_to = parsed_date(params[:date_to], Date.today.to_s)
end
def scope
Invoice.where('date BETWEEN ? AND ?', @date_from, @date_to)
end
private
def parsed_date(date_string, default)
Date.parse(date_string)
rescue ArgumentError, TypeError
default
end
end
这是我在本课程的index.html.erb文件中添加的内容(列出数据库中发票的页面):
<div class="row">
<h1>Listing Invoices</h1>
<div class="pull-right range-query">
<%= form_tag invoices_path, method: :get do %>
<%= text_field_tag 'search[date_from]', @search.date_from %>
<%= text_field_tag 'search[date_to]', @search.date_to %>
<%= submit_tag 'Search', class: 'btn search-button' %>
<% end %>
</div>
</div>
答案 0 :(得分:8)
更改
initializ
为:
initialize