Rails:错误的参数数量(1表示0)

时间:2015-02-12 19:19:34

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

在我的rails应用程序中,我在作业模型中使用此方法从作业显示页面返回公司的作业

  def same_company
    Job.approved.where(company: self.company).where.not(job: self.job)
  end

但这不起作用并给我这个错误

  

错误的参数数量(1表示0)

为什么我收到此错误?以及如何解决此问题

更新

这是我在日志文件中找到的错误

Rendered jobs/show.html.erb within layouts/application (352.9ms)
Completed 500 Internal Server Error in 1155ms

ActionView::Template::Error (wrong number of arguments (1 for 0)):
    154:       <div class="cl3_comp">
    155:         <div class="_3clmn_dictry">
    156:           <ul class="uList _3clmn _4direct">
    157:             <% @job.same_company(6).each do |same_company_job| %>
    158:               <li class="_lidiretry">
    159:                 <div class="clearfix _5qo4">
    160:                     <%= link_to job_path(same_company_job), class: "_5q6s _8o _8t lfloat _ohe" do %>
  app/models/job.rb:65:in `same_company'
  app/views/jobs/show.html.erb:157:in `_app_views_jobs_show_html_erb__849384532_94102470'
  app/controllers/jobs_controller.rb:59:in `show'
  app/controllers/application_controller.rb:61:in `user_time_zone'

这是我的工作模式

 #company
    belongs_to :company

  #User
  belongs_to :user

  def same_company
    Job.approved.where(company: self.company).where.not(job: self.job)
  end

1 个答案:

答案 0 :(得分:2)

是的,修复是:

<% @job.same_company[0...6].each do |same_company_job| %>

根据方法定义same_company,它不接受任何参数,但您发送same_company(6)。我想你想要第一行6,所以上面的代码就是你需要的。