【发布时间】:2016-12-17 10:19:48
【问题描述】:
我正在尝试创建一个@link.user,但它一直给我这个“未定义的方法”错误。
irb(main):002:0> @link.user
NoMethodError: 未定义方法
user' for nil:NilClass from (irb):2 from c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/console.rb:110:instart' 来自 c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/console.rb:9:instart' from c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/commands_tasks.rb:68:inconsole' 来自 c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/commands_tasks.rb:39:inrun_command!' from c:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/railties-4.2.5.1/lib/rails/commands.rb:17:in' 从 bin/rails:4:inrequire' from bin/rails:4:in'
我的用户.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :links
end
我的链接.rb
class Link < ActiveRecord::Base
belongs_to :user
def show
end
end
【问题讨论】:
-
您似乎正在尝试从尚未设置的 rails 控制台检查实例变量的值。也许您应该尝试从 rails 控制台创建一个新的链接对象并将其保存到一个变量中,然后检查它是否正确关联。例如:'user = User.first'(假设您的数据库中已经有一个用户..如果没有创建一个)然后创建链接使用
user.links.create!(link_params)您必须为您的模型传递特定参数,其中它说'link_params' -
@link 为零,你是如何实例化那个变量的?