Я получаю сообщение об ошибке при попытке перебрать ParamsОшибка при переборе Params
При выполнении кода ниже:
def create_score
@quiz = Test.find_by(password: session[:test_password])
@points = 0
@quiz.tasks.each_with_index do |task, index|
@task = Task.find_by(id: task)
@points += @task.score if @task.correct_answers.to_s == send("params[:test][:task#{index}]")
end
@score = Score.new(user_id: 2, name: "Test1", points: @points)
if @score.save
redirect_to root_url
else
redirect_to signup_path
end
end
я получаю:
undefined method `params[:test][:task0]' ...
на
@points += @task.score if @task.correct_answers.to_s == send("params[:test][:task#{index}]")
Это означает, что он имеет Проблема с send
методом
Параметры выглядеть следующим образом:
{"utf8"=>"✓",
"authenticity_token"=>"8h7rtv2yWio11DFo6kBKutdZl7RDBBaTrt7e8qel8fR5R5XsoXRhRrBeDQPPoZeuBlZ7N5PmqCxik06Z/gQLZQ==",
"test"=>{"task0"=>["4"], "task1"=>["0"], "task2"=>["10"]},
"commit"=>"Zakończ test",
"locale"=>"pl"}
Это означает, что есть params[:test][:task0]
, но все же по какой-то причине он выстреливает ошибку, но я не знаю, почему. Любые идеи, почему это происходит?
Стоит отметить, что интерполяция строк не будет работать с символом непосредственно – Deep
@Deep, он работает - ':" task # {index} "'. – ndn