Rails 关于数据关联的问题

sforce100 · October 21, 2012 · Last by help5305fff replied at October 22, 2012 · 2204 hits

Teacher 里面有 belongs_to :school ,:inverse_of => :teacher School 里面有 has_many :teacher,:order => "sort ASC",:dependent => :destroy accepts_nested_attributes_for :teacher, :allow_destroy => true

这样的嵌套属性

teacher 里面的 index.html.erb

    <% School.includes(:teacher).each do |school|%>
  • <%= school.teacher.name %>
  • <% end%>

缺读不出数据,报错了。说 undefined method `name' for nil:NilClass

不是应该 has_many :teachers 么?

#1 楼 @zgm has_many :teacher,:order => "sort ASC",:dependent => :destroy 是 has_many

Unknow user #3 October 22, 2012

@sforce100 你居然知道那是 has_many 啊,居然知道了是 has_many 那你应该知道(先不论你写咋样) school.teacher 得到是一个数组,数组有 name 吗???

Unknow user #4 October 22, 2012

修正你的写法 School 里面,注意是 teachers,不是 teacher has_many :teachers,:order => "sort ASC",:dependent => :destroy

然后你的 index 里 <% School.all.each do |school|%> <% school.teachers.each do |teacher| %> <%= school.name %>| <!--如果你的学校有名字--> <%= teacher.name %> <br/> <% end%> <% end%>

#3 楼 @help5305fff 其实我修改过。。是<%= school.teacher.first.name %>还是不行。。试下循环先

#4 楼 @help5305fff 谢谢。。这个我会注意的

Unknow user #7 October 22, 2012

@sforce100 你 first 也要考虑下 first 如果没有,就是 nil,nil.nam 还是要报错滴啊

#7 楼 @help5305fff 晕死。。<%= school.teacher.first.name %>现在又出来了。。刚刚重起过 service 都不行。。突然就行了

Unknow user #9 October 22, 2012

因为你的数据里,你给学校增加了老师,老师不是空,当然就能出来啦。。。基础啊,快加强基础的学习吧。。。

You need to Sign in before reply, if you don't have an account, please Sign up first.