Rails - 找不到 controller_action_path
Rails - Cannot find controller_action_path
嘿伙计们,我可能有一个简单的问题现在困扰了我 2 个小时。
我尝试设置一个 menu_item_icon,它 link 用于我的控制器操作之一。
到目前为止,这些 menu_items 中的每一个都有效。但是有一个地方我总是收到失败消息“Controller_Action 找不到路径”,我想知道为什么会这样。
以下是来自
的一些代码片段
- a) controller_action本身的定义
- b) 路线在routes.rb
- c)menu_item_iconlink关于我的一些看法
a) 控制器中动作的定义sells_controller.rb
def manage_sell
@stored_sells = SaveSell.all
respond_to do |format|
format.html{render 'manage_sells',:layout=>false}
end
end
b) 在我的 routes.rb
中执行 manage_sell 的路线
resources :sells, :only=>[:show,:new,:create] do
[...]
get :manage_sell, :on=>:collection
[...]
end
c) menu_item_icon link 我的观点之一
[...]
=menu_item_icon('m_sells','Manage Sells'),sells_manage_sell_path
[...]
那到底出了什么问题?
我想会的
manage_sell_sells_path
而不是
manage_sells_sell_path
因为你的行动是
manage_sell
控制器是
sells
虽然没有名为 'manage_sells' 的操作,但它不会引发 'Controller_Action path not found' 错误
rake routes 给出了你必须使用的名称,所以在你的情况下你必须写 manage_sell_sells_path
.
我对命名有一点意见:我更喜欢更简单的 manage
这样一切就都有意义了。如果您将路由定义在成员上,则路径将为 manage_sell_path
.
所以我猜你的路线定义应该是
resources :sells, only: [:show, :new, :create] do
get :manage, on: :member
end
现在的命名似乎暗示您是 "managing" 单一销售。
嘿伙计们,我可能有一个简单的问题现在困扰了我 2 个小时。
我尝试设置一个 menu_item_icon,它 link 用于我的控制器操作之一。
到目前为止,这些 menu_items 中的每一个都有效。但是有一个地方我总是收到失败消息“Controller_Action 找不到路径”,我想知道为什么会这样。
以下是来自
的一些代码片段- a) controller_action本身的定义
- b) 路线在routes.rb
- c)menu_item_iconlink关于我的一些看法
a) 控制器中动作的定义sells_controller.rb
def manage_sell
@stored_sells = SaveSell.all
respond_to do |format|
format.html{render 'manage_sells',:layout=>false}
end
end
b) 在我的 routes.rb
中执行 manage_sell 的路线resources :sells, :only=>[:show,:new,:create] do
[...]
get :manage_sell, :on=>:collection
[...]
end
c) menu_item_icon link 我的观点之一
[...]
=menu_item_icon('m_sells','Manage Sells'),sells_manage_sell_path
[...]
那到底出了什么问题?
我想会的
manage_sell_sells_path
而不是
manage_sells_sell_path
因为你的行动是
manage_sell
控制器是
sells
虽然没有名为 'manage_sells' 的操作,但它不会引发 'Controller_Action path not found' 错误
rake routes 给出了你必须使用的名称,所以在你的情况下你必须写 manage_sell_sells_path
.
我对命名有一点意见:我更喜欢更简单的 manage
这样一切就都有意义了。如果您将路由定义在成员上,则路径将为 manage_sell_path
.
所以我猜你的路线定义应该是
resources :sells, only: [:show, :new, :create] do
get :manage, on: :member
end
现在的命名似乎暗示您是 "managing" 单一销售。