0

我正在使用 Rails 和 Devise gem。我想要支付宝账户。

我有功能:

  def verify_paypal
............
   end

我把它放到user.rb中。在 routes.rb 中添加了路由:

devise_for :users do
  member do
  get 'verify_paypal'
  end
end

并得到错误

  /mapper.rb:1189:in `member': can't use member outside resource(s) scope (ArgumentError)

我做错了什么?

4

1 回答 1

1

首先,您不能在 上调用块devise_for,它不是以这种方式设置的。Devise 确实提供了一个辅助方法,您可以使用它来调用 Devise 路由上的块。请参阅自述文件

二、Devise routes 和scoping Devise routes,只针对Devise routes。您的方法不在任何设计控制器中,因此不能为设计调用它。您需要有一个单独users_controller.rb的方法来调用verify_paypal模型。然后,您可以在resources users. 有关 Rails 路由堆栈的更多信息,我建议阅读Rails Routing From the Outside In。这应该为您提供调用自定义操作所需的所有信息。

于 2012-07-15T01:30:20.597 回答