【发布时间】:2012-05-04 00:43:39
【问题描述】:
我有一个表单,用户可以在其中填写包含 email_id 列的详细信息
现在如果用户已登录,将会出现一个链接说明
“NOT USER NAME” 例如“NOT VIREN NEGI” 反对该电子邮件字段,这将是一个ajax请求。破坏设计会话
一旦用户单击链接,设计会话将被破坏,并且在 ajax 成功时,上述锚标记将消失
我已经通过 Moneypatching 像 Devise 的 destroy 方法实现了这个解决方案
class DeviseSessionsController < DeviseController
def destroy
.... DEVISE CODE ...
.... DEVISE CODE ...
.... DEVISE CODE ...
respond_to do |format|
if request.xhr? **## My Hack**
format.js { render :partial => 'users/signout' } **## render signout partial on ajax request**
else
format.any(*navigational_formats) { redirect_to redirect_path }
format.all do
method = "to_#{request_format}"
text = {}.respond_to?(method) ? {}.send(method) : ""
render :text => text, :status => :ok
end
end
end
end
end
虽然这一切似乎都有效,但我对此并不满意
- 如果设计更新不适合,并且将来销毁方法可能看起来与当前不同
- 我已经复制了 devise/sessions_controller 的所有其他操作方法,以使设计工作没有任何问题
谁能帮我解决这个问题
请避免回答说猴子补丁是不好的,让我阅读关于猴子补丁的所有内容(我知道),这就是为什么发布这个问题。
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 session jquery devise