Получите "неправильное количество аргументов" на ruby ​​на рельсах

Неверное количество аргументов (дано 2, ожидается 1)

SportsController

class SportsController < ApplicationController
  def index
    @sport = Sport.all
    @events, @errors = Bapi::Inplay.all(query)
  end

  private
    def query
      params[:query, {}]
    end
end

Спорт index.html.erb

 <% @sports.each do |sport| %>
   <% @events(:sport_id => sport.id).each_slice(2) do |events| %>

Я хочу отправить друг sport.id в @enevts переменная экземпляра


Отредактировано: при отправке запроса в виде хэша в SportsController это работает!!

class SportsController < ApplicationController
  def index
    @sport = Sport.all
    query = {:sport_id => 1} 
    @events, @errors = Bapi::Inplay.all(query)
  end

  private
    def query
      params[:query, {}]
    end
end

index.html.erb

 <% @sports.each do |sport| %>
   <% @events.each_slice(2) do |events| %>

1 ответ

params это хеш и метод :[] может принять только 1 аргумент.

 def query
    params[:query] || {}  # Will return :query part or empty Hash if it has nothing
 end
Другие вопросы по тегам