我有 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_question_path 传递到部分中,它总是会出错with NoMethodError undefined method "vote_path"
。
我怎样才能正确而干净地将这些路径传递到这个特定的部分?
如果有人需要更多代码,请大声喊叫。