在我的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
答案 0 :(得分:2)
是的,修复是:
<% @job.same_company[0...6].each do |same_company_job| %>
根据方法定义same_company
,它不接受任何参数,但您发送same_company(6)
。我想你想要第一行6
,所以上面的代码就是你需要的。