は、だから私は、次があるQuestion#Show.html.erb
を持っている:これは正常に動作しますローカル変数を同じビューの別の部分からハイジャックすることを防ぐ方法を教えてください。
<% @question.answers.each do |ans| %>
<%= render partial: "questions/answer", locals: {ans: ans} %>
<% end %>
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<div class="ibox">
<div class="ibox-title">
<h5>Your Refactor Suggestion</h5>
</div>
<div class="ibox-content">
<%= render partial: "answers/form", locals: {answer: @question.answers.build(user: current_user)} %>
</div>
</div>
</div>
</div>
。
ただし、一度反転すると(つまり、上部にあるイテレータの下に現在あるdiv.class=row
を置いてください)、狂ったエラーが発生します。例えば
、これをやって:
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<div class="ibox">
<div class="ibox-title">
<h5>Your Refactor Suggestion</h5>
</div>
<div class="ibox-content">
<%= render partial: "answers/form", locals: {answer: @question.answers.build(user: current_user)} %>
</div>
</div>
</div>
</div>
<% @question.answers.each do |ans| %>
<%= render partial: "questions/answer", locals: {ans: ans} %>
<% end %>
は、このエラーにつながる:ここ
ActionController::UrlGenerationError at /questions/42
No route matches {:action=>"vote_up", :controller=>"answers", :id=>nil} missing required keys: [:id]
は(簡潔にするために切り捨て)私のquestions/_answer.html.erb
部分である:ここでは
<%= link_to vote_up_answer_path(ans), method: :post do %>
<i class="fa fa-chevron-up"> </i>
<% end %>
<%= ans.cached_votes_total %>
<%= link_to vote_down_answer_path(ans), method: :post do %>
<i class="fa fa-chevron-down"> </i>
<% end %>
<%= ans.body %>
<%= link_to ans.user.try(:email), user_path(ans.user) %>
は私ですanswers/_form.html.erb
部分(簡略化のために切り捨てられている):
<%= simple_form_for(answer) do |f| %>
<%= f.error_notification %>
<%= f.input :question_id, as: :hidden %>
<%= f.input :user_id, as: :hidden %>
<div class="form-group">
<%= f.input_field :body, as: :text, class: "form-control", rows: 8 %>
</div>
<div class="form-group">
<%= f.input_field :language, collection: ["ruby", "python", "php"], as: :select, selected: "ruby", class: "form-control" %>
</div>
<div id="new-post-submission-button">
<%= f.button :submit, class: "btn btn-lg btn-primary pull-right" %>
</div>
<% end %>
これは私のQuestions#Show
コントローラです:
def show
@question = Question.includes(:answers).find(params[:id])
end
その奇妙な行動を引き起こしている可能性がありますか?
が、これは* Railsの5 *との特定の問題ですか? * Rails 4.x *でこれを試しましたか? – Pavan
@Pavan私はこれをRails 4.xでテストしていません。私はRails 5を使ってアプリケーションを構築していますので、問題が発生している場所です。 – marcamillion