我对 Rails 很陌生,但今天开始遇到这个我以前没有遇到过的问题。目前正在开发具有一些嵌套关联的应用程序。虽然我可以通过父关联创建和添加保存这些嵌套关联,但我似乎无法很好地调用关联模型中的元素。我可以看到信息已保存,但是当我调用它时,我得到模型的名称而不是表的名称列中的名称。
brew.rb
class Brew < ActiveRecord::Base
has_many :fermentables
has_many :extras
has_many :hops
has_many :yeasts
accepts_nested_attributes_for :hops
end
跳跃.rb
class Hop < ActiveRecord::Base
belongs_to :brew
end
显示.html.erb
<%= @brew.name %>
<%= @brew.story %>
<%= @brew.walkthrough %>
<%= @brew.hops.name%>
除了@brew.hops.name 之外,该节目几乎所有内容都很好。它只显示 Hop。当我进入 rails 控制台时,我可以看到名称已保存。但只有当我做类似的事情时。
t = Brew.last
t.hops.name
只导致单词“hops”
但如果我只是说
t.hops
我明白了
` SELECT "hops".* FROM "hops" WHERE "hops"."brew_id" = ? [["brew_id", 28]]
=> #<ActiveRecord::Associations::CollectionProxy [#<Hop id: 6, name: "Warrior",
brew_id: 28, created_at: "2013-06-09 22:09:19", updated_at: "2013-06-09 22:09:19">]> `