사용자가 '결정'에 '결과'를 추가 할 수있는 시스템과 같은 댓글을 만들려고합니다.
이제 'decisions'의 show.html.erb에서 양식과 결과를 렌더링했지만 결과는 다음 오류를 제공합니다. # <# : 0x007fc6046099e8>에 대한 정의되지 않은 지역 변수 또는 메소드 '결과'
내 코드 :
controllers / outcomes_controller.rb
class OutcomesController < ApplicationController
def create
@decision = Decision.find(params[:decision_id])
@outcome = @decision.outcomes.create(params[:outcome].permit(:actual, :strength, :weakness))
redirect_to decision_path(@decision)
end
end
models / outcome.rb
class Outcome < ActiveRecord::Base
belongs_to :decision
end
models / decision.rb
class Decision < ActiveRecord::Base
has_many :outcomes
end
결정 /show.html.erb
<h1>Decision showpage</h1>
<h2><%= @decision.title %></h2>
<p><%= @decision.created_at %></p>
<p><%= @decision.forecast %></p>
<p><%= @decision.review_date %></p>
<%= render @decision.outcomes %>
<%= link_to "Delete Decision", decision_path(@decision), method: :delete, data: { confirm: "Are you sure?" } %>
<%= render "outcomes/form" %>
<%= render "outcomes/outcome" %>
results / _form.html.erb
<%= form_for([@decision, @decision.outcomes.build]) do |f| %>
<%= f.label :actual %>:
<%= f.text_field :actual %> <br/>
<%= f.label :strength %>:
<%= f.text_area :strength %> <br/>
<%= f.label :weakness %>:
<%= f.text_area :weakness %> <br/>
<%= f.submit %>
<% end %>
results / _outcome.html.erb
<%= outcomes.actual %>
<%= outcomes.strength %>
<%= outcomes.weakness %>
누구든지이 오류가 발생하는 이유와 작동하도록 할 수있는 방법을 설명하여 나를 도울 수 있습니까?
변수를 부분에 인수로 전달해야 할 수도 있습니다. 을 (를) 호출하려고하면 outcomes.actual
무엇인지 알 수 없습니다 outcomes
. 로컬 변수로 전달해야합니다.
<%= render "outcomes/outcome", locals: {outcomes: @decision.outcomes} %>
또는 단순히 @decision
인스턴스 변수 에서 가져옵니다 .
results / _outcome.html.erb
<%= @decision.outcomes.actual %>
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다