0

我想将这些行合并为一条。

devise_for :users do get '/users/sign_out' => 'devise/sessions#destroy' end
devise_for :users, :controllers => { :sessions => 'users'}

我认为它应该是这样的:

devise_for :users do get
    '/users/sign_out' => 'devise/sessions#destroy'
    :controllers => { :sessions => 'users'}
end

请帮忙

4

1 回答 1

1

不,这两种说法不一样。请注意,第二个调用传递了一个哈希作为参数device_for而第一个调用传递了一个 block( get '/users/sign_out' => 'devise/sessions#destroy'),这绝不等同于您的建议。如果这两个语句可以组合成一个语句,它应该是这样的:

devise_for :users, :controllers => { :sessions => 'users'} do 
  get '/users/sign_out' => 'devise/sessions#destroy'
end

但这可能会产生不同的效果(我不确定会device_for做什么),因为它会更改执行顺序(而不是在一个语句之后执行另一个语句,而是同时执行它们。

于 2013-01-21T15:56:57.510 回答