如何获取模型实例变量

时间:2012-08-22 03:16:05

标签: ruby-on-rails ruby model

我有一个简单的Rails应用程序,我正在尝试学习Rails。

它有一个我使用ActiveRecord创建的数据库表:

class CreateMovies < ActiveRecord::Migration
  def up
    create_table :movies do |t|
      t.string :title
      t.string :rating
      t.text :description
      t.datetime :release_date
      t.timestamps
    end
  end

  def down
    drop_table :movies
  end
end

这是我对应的模型类:

class Movie < ActiveRecord::Base
  def self.all_ratings
    %w(G PG PG-13 NC-17 R)
  end

  def name_with_rating()
    return "#{@title} (#{@rating})"
  end
end

当我在Movie的实例上调用name_with_rating时,对于任何Movie,它返回的都是“()”。从Movie的实例方法中调用以获取Movie实例的字段的正确语法或方法是什么?

请注意,数据库已经正确填充了电影行等。我已经完成了rake db:create,rake db:migrate等。

2 个答案:

答案 0 :(得分:4)

活动记录属性未实现为实例变量。尝试

class Movie < ActiveRecord::Base
  def name_with_rating()
    return "#{title} (#{rating})"
  end
end

答案 1 :(得分:1)

class Movie < ActiveRecord::Base
  def name_with_rating
     "#{title} (#{rating})"
  end
end

然后在控制台Movie.first.name_with_rating中应该可以工作。