我一直得到"错误的参数数量(给定1,预期为0)"

时间:2016-05-17 00:39:04

标签: ruby-on-rails ruby

我正在通过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>

1 个答案:

答案 0 :(得分:8)

更改

initializ

为:

initialize