ruby-on-rails - 创建自定义 move_up 路线和 move_down 操作/路线 Rails

标签 ruby-on-rails ruby ruby-on-rails-3 rubygems acts-as-list

我正在尝试创建两个带有向上和向下箭头的小按钮,并根据该按钮对我的产品进行排序。我有一个名为 Product 的模型,并使用acts_as_list 来跟踪位置。

我是否在 Controller 中执行类似的操作来创建路由?

resources :products
post "products/move_up"
post "products/move_down"

在我的产品 Controller 中

def move_up
  @product.find(params[:id])
  @product.move_higher
end

def move_down
  @product.find(params[:id])
  @product.move_lower
end

在我看来

<%= link_to "UP", products_move_up_path(product) %>
<%= link_to "Down", products_move_down_path(product) %>

但是我没有做正确的事情。我不断收到错误

找不到 id=move_up 的产品

任何人都可以帮我创建这个路由关系吗?

编辑: 现在我收到错误

当你没有预料到的时候,你得到了一个 nil 对象! 您可能期望一个 Array 的实例。 评估 nil.find 时发生错误

这里还有一些代码

查看代码

<ul>
<% item.children.each do |child| %>
<li id='category_<%=child.id %>'>
  <span><%= child.name %></span>

  <% child.products.position.each do |product| %>
    <br /><%= link_to "UP", move_up_product_path(product), method: :put %> | 
    <%= link_to "Down", move_down_product_path(product), method: :put %> ----------<%= product.position %> 
   <%= product.name %>
    <%= link_to 'Edit', edit_product_path(product) %>
    <%= link_to 'Delete', product, :method => :delete, :confirm => "Are you sure you want to delete this product?" %> <br />

    <% end %> 
  <%= render 'shared/children', :item => child unless child.leaf? %>
  </li>
 <% end %> <br />
 </ul>

它似乎挂起的代码在这里

 def move_up
   #Need to add a before filter to find product so I don't have to keep doing it.
   @product.find(params[:product])
   @product.move_higher
 end

当它执行查找时。谢谢!

最佳答案

因此,“向上”和“向下”实际上更多的是更新,因此您需要使用“PUT”,但同时,您也没有正确定义路线。试试这个:

resources :products do 
  member do
    put :move_up
    put :move_down
  end
end

这应该创建您正在寻找的路线。

此外,您的链接需要执行 :put,而不是 :get,后者是链接的默认操作。试试这个:

<%= link_to "UP", move_up_product_path(product), method: :put %>

这应该对你有用,要检查你的路线,你可以随时运行rake paths

希望这对您有帮助,如果有帮助,请接受/投赞成票!

关于ruby-on-rails - 创建自定义 move_up 路线和 move_down 操作/路线 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9491378/

相关文章:

ruby-on-rails - 如何从自定义类访问 'request' 对象(或类似对象)?

ruby-on-rails - 在 Rails 中使用 has_many 关联与单个表继承模型

ruby-on-rails - Rails 验证,知道哪个字段无效?

ruby - Vagrant provisioning 预装时找不到rvm

ruby-on-rails - PG::Error 服务器意外关闭了连接

ruby-on-rails - mocha/rspec 有 "not_expects"吗?

ruby-on-rails-3 - 轨道 3 : Strategy for system notifications

css - Rails 3 和 CSS

ruby-on-rails - 在 has_many View 表中显示名称而不是 ID

ruby-on-rails - 我应该在哪里放置 Rails 中多个 Controller 使用的方法?