ruby-on-rails - 无法获取对象属性

标签 ruby-on-rails ruby ruby-on-rails-3

模型:

class Car < ActiveRecord::Base
  ...
  belongs_to :manufacturer
  ...
end


class Manufacturer < ActiveRecord::Base
  ...
  has_many :cars
  ...
end

汽车 Controller :

  def index
     @title = "All cars"
     @cars = Car.paginate(:page => params[:page], :per_page => 20)
  end

查看:

<%= car.manufacturer.name %>

显示:nil:NilClass 的未定义方法“名称”

好的。查看:

<%= car.manufacturer[name] %>

显示:#<#:0x460c488> 的未定义局部变量或方法“名称”

但是!查看:

<%= car.manufacturer.to_yaml %>

显示:

--- !ruby/object:Manufacturer
attributes:
  id: 1
  name: Acura
  created_at: 2011-11-30 09:59:19.750976000 Z
  updated_at: 2011-12-06 10:38:46.569531000 Z

那么我如何读取 Car.manufacturer 的名称?

最佳答案

<%= car.manufacturer.name if car.manufacturer %>由于某些结果不会设置属性,这可确保您仅在设置属性时才调用属性 getter 方法。

关于ruby-on-rails - 无法获取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192106/

相关文章:

ruby-on-rails - Prawn 无法旋转 table

ruby-on-rails - Restful 设计的建议?

ruby-on-rails - Rails 自定义生成器组

ruby-on-rails - 如何在 Rails 4 的 Controller 中的方法之间共享变量?

ruby-on-rails - 无法在 Ruby on Rails 中创建数据库

ruby-on-rails - 无法弄清楚如何在设计上进行 i18n

ruby-on-rails - RSpec:如何在静态方法上使用 should_receive?

ruby-on-rails - Rails state_machine - 条件验证?

ruby-on-rails - Encoding::CompatibilityError(不兼容的字符编码:UTF-8 和 ASCII-8BIT)- 将文件上传到 Heroku 时

ruby-on-rails - 使用给定对象在数据库中查找下一个 ActiveRecord 模型对象