저는 Michael Hartl의 책에 소개 된 샘플 앱에서 레일즈 애플리케이션을 빌드하고 있습니다. 사용자 가입에 오류 메시지를 표시하기 위해, 나는 공유 디렉토리에있는 부분을 사용하고 있습니다 - 응용 프로그램 /보기/공유/_error_messages.html.erb :레일의 컨트롤 구조 부분
<%if @fact %>
<% @data = @fact %>
<% elsif @user %>
<% @data = @user %>
<% end %>
<% if @data.errors.any? %>
<div id="error_explanation">
<div class="alert alert-error">
The form contains <%= pluralize(@data.errors.count, "error") %>.
</div>
<ul>
<% @data.errors.full_messages.each do |msg| %>
<li>* <%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
원래,이 부분은 단지 같은 시작을 : 내가 다른 페이지에 오류를 표시하려면이 부분 다시 사용하기로 결정했습니다 이후
<% if @user.errors.any? %>
그러나, 나는 어떤 페이지에서 내가 사용하고 따라 다른 개체 (@user, @fact)를 사용하는 데 그거야. 이것은 쉽게 상단에 IF 문이 -하지만
<%if @fact %>
<% @data = @fact %>
<% elsif @user %>
<% @data = @user %>
<% end %>
는 구역질 느낀다 추가하여 해결된다. 공유 부분에 대해 이런 종류의 논리를 넣어야하는 컨트롤러가 있습니까? 예를 들어
<% if object.errors.any? %>
<div id="error_explanation">
<div class="alert alert-error">
The form contains <%= pluralize(object.errors.count, "error") %>.
</div>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li>* <%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
그리고 당신의 템플릿을 :
니스! 매력처럼 작동합니다. 감사 Marek! –