我正在使用一些旧代码并使用ActiveResource进行非常基本的Twitter集成.我想尽可能少地触摸应用代码,并在使用ActiveResource的同时将OAuth引入.
不幸的是,我发现没有简单的方法来做到这一点.我确实遇到了oauth-active-resource gem,但它没有完全记录,似乎是为创建完整的API包装库而设计的.正如您可以想象的那样,我想避免为这一个遗留变更创建一个完整的Twitter ActiveResource API包装器.
那里有成功案例吗?在我的实例中,离开ActiveResource可能会更快,而不是让它工作.我很高兴被证明是错的!
所以我有一个时髦的自定义登录路线
# routes.rb
map.login '/login', :controller => 'sessions', :action => 'new'
Run Code Online (Sandbox Code Playgroud)
访问www.asite.com/login,你就在那里.但是,对于登录失败的自定义,我们将在操作中执行以下操作.请注意登录失败时会发生什么.
# sessions_controller.rb
def create
self.current_user = User.authenticate(params[:email], params[:password])
if logged_in?
# some work and redirect the user
else
flash.now[:warning] = "The email and/or password you entered is invalid."
render :action => 'new'
end
end
Run Code Online (Sandbox Code Playgroud)
这很典型.只需渲染新操作并再次提示登录.不幸的是,你也会得到一个丑陋的URL:www.asite.com/session.伊克!是否可以让渲染尊重原始URL?