投票を送信するために、この同様のフォームを共有する 3 つのモデルがあります。このフォームは各モデルの表示ページに含まれているため、このコードをパーシャルに挿入してすべてをクリーンアップしたいと思います。
質問/show.html.erb
<div class="vote">
<div id="questions">
<h1><%= @question.votes_count %></h1>
</div>
<%= link_to "up", vote_question_path(@question, value: 1), remote: true, method: "post" %>
<%= link_to "down", vote_question_path(@question, value: -1),remote: true, method: "post" %>
</div>
以下のコードに従って、このコードをパーシャルに移動しようとしました。
投票/_form.html.erb
<div class="vote">
<div id="votes_count">
Votes: <%= object.votes_count %>
</div>
<%= link_to "up", vote_path(object, value: 1),remote: true, method: "post" %>
<%= link_to "down", vote_path(answer, value: -1), remote: true, method: "post" %>
</div>
表示ページの前のコードを、パーシャルをレンダリングする次の呼び出しに置き換えます。
<%= render partial: "votes/form", locals: {object: @question, vote_path: answer_question_path } %>
ただし、さまざまな文字列メソッドと send(path) メソッドを試して、vote_quest_path をパーシャルに渡すと、常にエラーになりwith NoMethodError undefined method "vote_path"
ます。
これらのパスをこの特定のパーシャルに正しくきれいに渡すにはどうすればよいですか?
さらにコードが必要な場合は、ただ叫んでください。