我有一个带有表格的视图,每行我都有一个按钮,允许您将所述行向上移动一个档位。我在我的控制器中创建了一个名为 order_up 的动作来执行这样的方法。
# steps_controller.rb
def order_up
@users = User.all
@project = Project.find(3)
@soriginalorder = :order
@scounter = 0
@project.steps.each do |step|
@scounter = @scounter + 1
if @scounter == @soriginalorder-1
step.order = @scounter + 1
end
if @scounter == @soriginalorder
step.order = @scounter-1
end
end
end
以下是我观点的相关部分:
<% @step_list_order = 0 %>
<% @project.steps.each do |step| %>
<li class="list-group-item">
<% @step_list_order = @step_list_order + 1 %>
<% step.order = @step_list_order %>
<%= step.order %>
<span class="label label-warning"><%= "Step" %></span>
<%= link_to step.description, edit_step_path(step) %>
<%= link_to raw("<i class=\"glyphicon glyphicon-arrow-up\"></i> Up"), order_up_step_path(step), :method => :put, :confirm => "Sure?", class: "btn btn-default btn-sm" %>
</li>
<% end %>
我为不可读的变量名称道歉但是下划线和算术运算符给了我错误。这是我得到的一个“ - ”符号: 未定义的方法` - 'for:order:Symbol 一个不同的SO问题表明事情没有正确定义但是一切似乎都被称为。
我感谢有人可以提供的任何帮助。也很乐意用更多代码或任何说明更新问题。谢谢!