Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails模型未设置属性_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 3.2_Ruby 1.9.3 - Fatal编程技术网

Ruby on rails Rails模型未设置属性

Ruby on rails Rails模型未设置属性,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.2,ruby-1.9.3,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,Ruby 1.9.3,我对rails开发非常陌生 Rails 3.2.13/ruby 1.9.3 我有这个型号 class Post < ActiveRecord::Base attr_accessible :content, :title attr_accessor :testing def asignar title = "hey" end end class Post # irb(主):005:0>post.asignar =>“嘿” irb(main)

我对rails开发非常陌生

Rails 3.2.13/ruby 1.9.3

我有这个型号

class Post < ActiveRecord::Base
    attr_accessible :content, :title
    attr_accessor :testing

    def asignar
        title = "hey"
    end
end
class Post
然后当我转到rails控制台时:

irb(main):004:0* post = Post.new
=> #<Post id: nil, title: nil, content: nil, created_at: nil, updated_at: nil>
irb(main):005:0> post.asignar
=> "hey"
irb(main):006:0> post.title
=> nil
irb(main):004:0*post=post.new
=> #
irb(主):005:0>post.asignar
=>“嘿”
irb(main):006:0>post.title
=>零
这正常吗?我是否必须始终保存对象才能获取属性?

尝试以下操作:

def asignar
    self.title = "hey"
end
试试这个:

def asignar
    self.title = "hey"
end

self.title='hey'
title=“hey”
设置的是局部变量
title
,而不是属性。正如Lee所说,在写入模型的属性时,应该使用
self.title
。阅读属性时,习惯上只使用属性名
title
,但
self.title
self[:title]
也可以。Lee Jarvis这正是答案,我知道这是一个非常愚蠢的问题,但我认为这对其他人可能有用,你为什么不把你的评论作为一个答案,这样我就可以把它标记为接受:)谢谢像亨金这样的人先到了那里。他的回答也是正确的,谢谢
self.title='hey'
title=“hey”
设置的是局部变量
title
,而不是属性。正如Lee所说,在写入模型的属性时,应该使用
self.title
。阅读属性时,习惯上只使用属性名
title
,但
self.title
self[:title]
也可以。Lee Jarvis这正是答案,我知道这是一个非常愚蠢的问题,但我认为这对其他人可能有用,你为什么不把你的评论作为一个答案,这样我就可以把它标记为接受:)谢谢像亨金这样的人先到了那里。他的回答也是正确的,谢谢!