将下一行合并为一行:

时间:2013-01-21 15:49:59

标签: ruby-on-rails

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

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

请帮助

1 个答案:

答案 0 :(得分:1)

不,这两个陈述不一样。请注意,第二个调用将散列作为device_for参数传递,而第一个调用传递一个块(get '/users/sign_out' => 'devise/sessions#destroy'),这绝不等同于您的建议。 如果这两个语句可以组合成一个语句,那么它应该是:

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

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