知道这是一个愚蠢的问题,但我找不到我正在寻找的东西。
我有两个模型:父母和孩子
class child < ActiveRecord::Base
belongs_to :parent
end
class parent < ActiveRecord::Base
has_many :childs
end
子控制器索引操作中的我想从父模型中显示每个查询记录的字段。
def index
@childs = Childs.all
end
如何在包含子记录的视图中显示parent_name?
例如:
<%= @childs.each do |c| %>
<%= child.name %>
<%= child.parent.name %>
<% end %>
答案 0 :(得分:2)
以下是我在您的代码中找到的问题列表。
childs
应为children
。 @childs
时,您应该将模型引用为Child
,而不是Childs
c
循环浏览子项的每条记录,但您将其引用为child
<%=
。纠正这些应该是这样的,它应该工作。如果您遇到其他问题,请发布错误消息和相关代码。
<强>模型强>
class Child < ActiveRecord::Base
belongs_to :parent
end
class Parent < ActiveRecord::Base
has_many :children
end
<强>控制器强>
def index
@childs = Child.all
end
查看强>
<% @childs.each do |child| %>
<%= child.name %>
<%= child.parent.name %>
<% end %>
答案 1 :(得分:0)
如果您使用的是nil类,则可能是因为您的:parent_id在创建记录时没有携带父母的ID。
您可以转到Rails控制台并输入“ Child.all”,以查看您所有的:parent_ids是否均为零。
我自己有一个用户模型has_many:tweets,每个推文模型都属于:user。在我的tweet.controller.rb中,按如下所示设置def create,以便在:user_id列中输入用户ID:
def create
@tweet = current_user.tweets.new(tweet_params)
if @tweet.save
flash[:notice] = "You've updated with a tweet."
redirect_to admin_tweets_path
else
@tweets = Tweet.all
render :index
end
end