그래서 작동 다음 ERB이 : 내 컨트롤러에서는 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을 덮어 쓰는 것 같아요. 그러나 왜 그리고 어떻게 문제를 해결합니까? 나 또한 네이티브 폼 빌더를 사용 했으므로 형식적인 문제는 아닌 것 같습니다.
UPDATE : 그래서 나는 @user_skills 배열이 실제로 지속되지 않았으며 #skill_id
또는 #skill.name
이없는 방금 만든 user_skill가 포함되어 있음을 발견 ! 그리고 양식의 시작 부분에 UserSkill.new
을 입력하면 @user_skills 배열이 괜찮습니다. 어쩌면 생성 된 객체를 쿼리에 자동으로 포함하는 캐싱 레이어가 activerecord에있을 수 있습니다. 아니면이 버그입니까?
감사합니다. 그것은 또한 내가 알아 낸 것입니다. 나는 current_user.user_skills가 영속 객체만을 포함 할 것이고, 분명히 사실이 아님을 전제했습니다. – randomor