Rails - 找不到 controller_action_path

Rails - Cannot find controller_action_path

嘿伙计们,我可能有一个简单的问题现在困扰了我 2 个小时。

我尝试设置一个 menu_item_icon,它 link 用于我的控制器操作之一。

到目前为止,这些 menu_items 中的每一个都有效。但是有一个地方我总是收到失败消息“Controller_Action 找不到路径”,我想知道为什么会这样。

以下是来自

的一些代码片段

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" 单一销售。