рельсы 3 - Помощь Возвращение ноль - PullRequest
1 голос
/ 13 ноября 2010

Здравствуйте, у меня есть следующее в моем контроллере создания:

  def create
    @requestable = find_requestable

    if !@requestable.nil?
     . .. 

И затем:

  def find_requestable  
    params.each do |name, value|  
      if name =~ /(.+)_id$/  
        return $1.classify.constantize.find(value)  
      end
    end  
    nil  
  end

это работает, когда find_requestable отправляет обратно параметр, но если это не такэто не отправляет обратно NIL, что вызывает все ошибки:

NameError (uninitialized constant Undefined):
  app/controllers/request_threads_controller.rb:133:in `find_requestable'
  app/controllers/request_threads_controller.rb:131:in `each'
  app/controllers/request_threads_controller.rb:131:in `find_requestable'
  app/controllers/request_threads_controller.rb:52:in `create'
  app/middleware/flash_session_cookie_middleware.rb:14:in `call'

Почему find_requestable не отправляет обратно nil?спасибо

1 Ответ

1 голос
/ 13 ноября 2010

Третья строка вашего find_requestable метода, сначала проверьте, является ли name blank. Дайте этому шанс.

if !name.blank? && name =~ /(.+)_id$/  

ОБНОВЛЕНИЕ: Ответ в комментарии:

Единственное, о чем я могу подумать, это то, что один из ваших параметров имеет Undefined в качестве значения, что вызывает return $1.classify.constantize.find(value). Можете ли вы взглянуть на заголовки HTTP и параметры POST, которые отправляются по проводам?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...