gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 08:40:12 25 4
gpt4 key购买 nike

我正在尝试创建两个带有向上和向下箭头的小按钮,并根据它对我的产品进行排序。我有一个名为 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

当它执行查找时。谢谢!

最佳答案

所以“Up”和“Down”实际上更像是一个更新,所以你想使用“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 routes

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com