2016-04-11 3 views
-1

это первый раз, чтобы эта ошибка возникла в рельсах и я действительно не знаю, где он идет отсюда реализация функции:Неверное число аргументов (2 на 3)

def self.send (sender,recivers,content) 
      recivers.each do |reciver| 
       @notification = Notification.new 
       @notification.sender= sender 
       @notification.user = reciver 
       @notification.body = content 
       @notification.save 
      end 

    end 

и здесь то, как зовут его:

def after_create(announcment) 
    instructor_id = announcment.course.instructor_id 
    sender = User.find_by_id(instructor_id) 
    students = announcment.course.users 
    body = announcment.announcment 
    coures_name = announcment.course.name 
    Notification.send(sender,students,body) 
    UserMailer.notify_students_course(students,coures_name) 
end 
+0

опубликуйте свой журнал ошибок PLS – 7urkm3n

+1

Я нашел ошибку, которая была в имени метода отправки, но я не знаю, почему это создаст ошибку, это отправить зарезервированное ключевое слово? – mohamed

+0

@mohamed Это метод класса Ruby 'Object' (поэтому каждый класс наследует его), который вызывает метод с первым аргументом и параметрами остальных аргументов, заданных' send'. Также в RoR это [reserverd word] (http://www.rubymagic.org/posts/ruby-and-rails-reserved-words) –

ответ

2

send является методом рубина из Object класса (так что каждый класс наследует его), который вызывает метод с именем, первым аргументом и параметрами остальных заданных параметров send. Также в RoR его reserverd word.

Лучше не переопределять его, потому что он может стать беспорядочным.

Смежные вопросы