我不知道我做错了什么。这是我的路线:
resources :stores do
get '/add_shoes' => 'stores#add_shoes', :as => :add_shoes
end
我的路径应该是:<%= link_to "Add Shoes", add_shoes_path %>
但它给出了路径不存在的错误。我如何使用它们?
我不知道我做错了什么。这是我的路线:
resources :stores do
get '/add_shoes' => 'stores#add_shoes', :as => :add_shoes
end
我的路径应该是:<%= link_to "Add Shoes", add_shoes_path %>
但它给出了路径不存在的错误。我如何使用它们?
如果我没记错的话,因为它嵌套在一个resources
块中,它会附加stores
到最后。所以正确的路线是add_shoes_stores_path。有时它还会在末尾添加一个索引(不知道为什么),给你 add_shoes_stores_index_path。
由于这是一个get
电话,你总是可以把它放在resources
街区之外。
此外,更多的 Rails 方法是:
resources :stores do
collection do
get :add_shoes
end
end
关于如何处理它,您有很多选择。但只是一个快速提示,您始终可以rake routes
从命令行键入以获取所有可用路线的列表以及它们指向的位置。
如果您为了代码的清晰而考虑这样做,请记住这一点:您的路线应始终提及它们指向的位置。那将是add_shoes
和stores
。有一个add_shoes_path
可能指向任何控制器,因为它并不是很冗长。我肯定会坚持使用 Rails 的方式来做这件事——当你深入研究时,它会更有意义。
最后,另一个想法 - 如果您在商店模型中添加鞋子,那么每个商店都有鞋子是有意义的。您可能应该为 Shoes 创建一个新模型并使用 RESTFUL 路由。