nil的未定义方法`gsub':NilClass让我在轨道上的红宝石中疯狂

Lon*_*Guy 3 ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我不知道到底是什么,但我正在尝试使用GSUB,然后我决定不再使用它,所以将我的link_to参数更改回:

<%= link_to root_url(@user.username), @user.username %>
Run Code Online (Sandbox Code Playgroud)

现在我不断收到这个错误:nil的未定义方法`gsub':NilClass

当我从我的show文件中删除整行时,一切都很好.

或者如果我改成它:

<%= link_to root_url(:user => @user.username), @user.username %>
Run Code Online (Sandbox Code Playgroud)

就像它已经混淆了一些如何并且认为我仍然在使用gsub方法时,我不是.我已经测试或url帮助程序,如login,password_reset等,他们都工作正常.它似乎只是用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
Run Code Online (Sandbox Code Playgroud)

tad*_*man 8

我认为你有关于link_to倒退的论点.它应该是:

link_to(label, url)
Run Code Online (Sandbox Code Playgroud)

gsub方法可以由Rails内部更深层次的东西触发.当您收到错误时,通常会得到一个堆栈跟踪,有助于解释导致失败的事件链.