2014-06-14 11 views
0

在我的本地环境中,我可以通过调用方法来获取青少年的姓名,但是这并不显示在网站的实时版本中。 teen_mid与青少年有着belongs_to关系。Belongs_to生活网站上的错误关系

这是一个mongoDB后端,所以没有模式。

<% @teen_mid.each do |fn| %> 
    <%= fn.teen.full_name %> 
<% end %> 

错误的样子:

ActionView::Template::Error (undefined method `full_name' for nil:NilClass): 
Jun 13 18:24:11 ctjmadrichim app/web.1:  7:  <% @teen_end.each do |fn| %> 
Jun 13 18:24:11 ctjmadrichim app/web.1:  8:   <ul> 
Jun 13 18:24:11 ctjmadrichim app/web.1:  9:    <li> 
Jun 13 18:24:11 ctjmadrichim app/web.1:  10:     <%= link_to fn.teen.full_name, teen_end_year_url(fn.id) %> 
Jun 13 18:24:11 ctjmadrichim app/web.1:  11:     <ul> 
Jun 13 18:24:11 ctjmadrichim app/web.1:  12:      <li><%= fn.updated_at.strftime("%m/%d/%Y") %></li> 
Jun 13 18:24:11 ctjmadrichim app/web.1:  13:      <li><%= link_to "Edit", edit_teen_end_year_url(fn.id) %></li> 
Jun 13 18:24:11 ctjmadrichim app/web.1: app/views/teen_end_year/index.html.erb:10:in `block in _app_views_teen_end_year_index_html_erb___2823357747674697580_70015951896080' 
Jun 13 18:24:11 ctjmadrichim app/web.1: app/views/teen_end_year/index.html.erb:7:in `each' 

青少年型号是:

class Teen < User 

    before_validation :unformat_phone_numbers 
    after_validation :format_phone_numbers 

    many :teen_mid_year 
    many :teen_end_year 

    many :admin_interviews 

    many :teacher_mid_year 
    many :teacher_end_year 

    many :incidents 

    one :teen_new 
    one :teen_term 

    key :born_on,  Date 
    key :home_phone, String 
    key :cell_phone, String 

    validates_length_of :home_phone, :cell_phone, is: 10 

并为形式的模型是:所示

class TeenMidYear 
    include MongoMapper::Document 

    belongs_to :teen 

    key :placement,   String 
    key :aid,     String 
    key :initiative,   String 
    key :behave,    String 
    key :reliable,    String 
    key :srelation,   String 
    key :overall_performance, String 
    key :other_teens,   String 

    timestamps! 
end 
+0

需要一些比这更多的信息。完整的类文件,模式文件和任何您遇到的错误将是一个很好的开始。 –

回答

0

问题痕迹是fn.teen是返回零。这表明没有Teen对象与发生错误时循环中的特定@teen_mid相关联。

如果teen协会是必不可少的,我建议在创建时添加一个验证,以防止它成为零。如果它不是必需的,那么围绕link_to的一些防护代码在联合缺席时呈现默认字符串将是一个好主意。