控制器动作中的未定义方法new

时间:2016-02-09 09:29:51

标签: ruby-on-rails ruby twilio

我收到一条奇怪的错误信息,没有给出太多信息,我很困惑。

undefined method ` ' for #<User::PhoneNumbersController:0x007ff2259fa320>

router.rb

namespace :user do

    resources :phone_numbers, only: [:new, :create]
end

控制器/用户/ phone_numbers_controller.rb

class User::PhoneNumbersController < User::UserController

  def new
    @phonenumber = PhoneNumber.new
  end

end

模型/ phone_number.rb

class PhoneNumber < ActiveRecord::Base
  belongs_to :user
end

这一行失败了:@phonenumber = PhoneNumber.new

我的设计模式错了吗? 堆栈跟踪并没有多说......

感谢Max的回答

我的确“已经成为了受害的非破坏性空间角色”或NBSP。我在实例变量@phonenumber左侧有一个。

1 个答案:

答案 0 :(得分:9)

你已成为邪恶的non-breaking space character或其中一个堂兄弟(如头发空间)的牺牲品。

虽然明显相同,但Ruby解析器不会将非中断空格字符U+00A0视为与普通U+0020字符相同。 Ruby反而将其视为标识符。这就是为什么你得到undefined method ` '

打开编辑器中隐藏的角色,去寻找那些讨厌的NBSP。