所以我有以下的僱員再培訓局的作品:在ERB導致錯誤
<ul class="list-group">
<%- @user_skills.each do |user_skill| %>
<li class="list-group-item"><%= user_skill.skill.name %></li>
<% end %>
</ul>
<%= semantic_form_for current_user.user_skills.new do |f| %>
<%= f.inputs %>
<%= f.actions %>
<% end %>
在我的控制,我有一個@user_skills = current_user.user_skills
。 一旦我交換兩大塊:
<%= semantic_form_for current_user.user_skills.new do |f| %>
<%= f.inputs %>
<%= f.actions %>
<% end %>
<ul class="list-group">
<%- @user_skills.each do |user_skill| %>
<li class="list-group-item"><%= user_skill.skill.name %></li>
<% end %>
</ul>
它提出了這樣的錯誤:undefined method
名」的零:NilClass`。所以我猜測表單構建器是以某種方式覆蓋ul塊內的user_skill。但爲什麼以及如何解決問題?它似乎不是一個formtastic問題,因爲我也使用了本地表單構建器。
更新: 因此,我發現@user_skills數組實際上包含剛纔創建的user_skill,它尚未被保留,並且沒有#skill_id
或#skill.name
!如果我在表單的開頭做UserSkill.new
,那麼@user_skills數組就可以。也許在activerecord中有一個緩存層,它會自動將創建的對象包含到查詢中。或者這是一個錯誤?
謝謝。這也是我發現的。我認爲current_user.user_skills將只包含持久對象,這顯然是不正確的。 – randomor