Неопределенный метод `gsub 'для nil: NilClass сводит меня с ума в ruby ​​на рельсах - PullRequest
3 голосов
/ 03 ноября 2011

Я не знаю, что случилось, но я экспериментировал с GSUB, затем решил, что больше не хочу его использовать, поэтому изменил мои аргументы link_to обратно на:

<%= link_to root_url(@user.username), @user.username %>

Теперь я продолжаю получатьэта ошибка: неопределенный метод `gsub 'для nil: NilClass

, и когда я удаляю всю эту строку из моего файла шоу, все в порядке.

или если я изменяю ее на это:

<%= link_to root_url(:user => @user.username), @user.username %>

Это похоже на то, что кто-то смущен и думает, что я все еще использую метод gsub, когда не использую.Я проверил или URL помощников, таких как логин, пароль_резет и т. Д., И все они работают нормально.Похоже, что это делается только с root_url.

Я также клонировал репо моего сайта со вчерашнего дня, прежде чем я получил эту проблему, и угадайте что?Та же ошибка ..

Я никогда не был так расстроен своим программированием.

Есть ли что-то, что я могу очистить?Я попытался очистить все в папке tmp до сих пор не повезло.

маршруты:

Mysite::Application.routes.draw do

  resources :users
  resources :sessions
  resources :passwords


  root :to                   => "users#new"
  match 'success'            => "users#success"
  match 'login'              => "sessions#new"
  match 'logout'             => "sessions#destroy"
  match 'reset_password'     => "passwords#new"
  match 'setup_new_password' => "passwords#edit"
  match ':username'          => "users#show"

end

Ответы [ 2 ]

8 голосов
/ 03 ноября 2011

Я думаю, у вас есть аргументы для link_to в обратном направлении. Должно быть:

link_to(label, url)

Метод gsub может быть вызван чем-то более глубоким внутри Rails. Когда вы получаете ошибку, обычно вы получаете трассировку стека, которая помогает объяснить цепочку событий, приводящих к сбою.

1 голос
/ 03 ноября 2011

Это должно сработать, так как root_url (и root_path) не имеют параметров:

<%= link_to @user.username, root_url %>

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