0
我寫了一個自定義的服務,爲我的項目:導軌 - 傳遞的參數定製服務不承認[NoMethodError]
#app\services\quiz_data_creation.rb:
class QuizDataCreation
def initialize(user)
@quiz_session = user.quiz_session #<-- here is the problem
end
def create
create_answer_data
end
private
def create_answer_data
@quiz_session.quiz.questions[@quiz_session.current_question_index].answers
end
end
我調用Create方法在我ActionCable通道是這樣的:
class QuizDataChannel < ApplicationCable::Channel
def send_data
logger.debug "[AC] before quiz data creation service - current user: #{current_user.inspect}"
@answers = QuizDataCreation.new(user: current_user).create
#then send answers
end
end
我遇到的問題是服務無法識別我調用create方法時傳遞的用戶對象,即使記錄器顯示我正在找到正確的對象!它給了我錯誤消息:
NoMethodError - undefined method quiz_session for #<Hash:0xc86cfa0>
我正在使用Devise生成的用戶。另外,我使用兩個從用戶模型(教師和學生)繼承的模型可能是相關的,但所有屬性都存儲在users
表中。
用戶記錄是這樣的:
[AC] before quiz data creation service - current user: #<Teacher id: 1, email: "[email protected]", created_at: "2017-05-11 07:24:48", updated_at: "2017-07-26 08:40:27", name: "Bob", quiz_session_id: 7>
我將非常高興,如果有人能指出我如何解決這個問題 - 謝謝! :)
學習了一些關於參數的新東西,謝謝!這解決了它! :) – megahra