ruby-on-rails – Rails 3设计 – 如何设计回应JSON

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails 3设计 – 如何设计回应JSON前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_0@
我的环境是带有Devise 1.1的Rails 3.0.1.我正在开发一个移动Web应用程序,主要使用 javascript,并且希望保留尽可能多的基于 JSON的通信.

有没有办法让设计用JSON响应成功/失败消息,而不是必须遵循302重定向并解析HTML?

看着使用this.

……但是没有它工作.

解决方法

您可以重新定义sign_in_and_redirect和sign_out_and_redirect设计帮助程序,以呈现json而不是重定向用户.

我无法在初始化程序中重新定义它们,因此我找到的最接近的解决方案是将其添加到application_controller.rb:

private

# Override the default devise signin/signout process
def sign_in_and_redirect(resource_or_scope,resource=nil)
  scope      = Devise::Mapping.find_scope!(resource_or_scope)
  resource ||= resource_or_scope
  sign_in(scope,resource) unless warden.user(scope) == resource
  # redirect_to stored_location_for(scope) || after_sign_in_path_for(resource)
  render :json => {:status => :signed_in}
end


def sign_out_and_redirect(resource_or_scope)
  scope = Devise::Mapping.find_scope!(resource_or_scope)
  if Devise.sign_out_all_scopes
    sign_out_all_scopes
  else
    sign_out(scope)
  end
  #redirect_to after_sign_out_path_for(scope)
  render :json => {:status => :signed_out}
end

如果有人有更清洁的解决方案,我也很感兴趣

原文链接:https://www.f2er.com/ruby/269798.html

猜你在找的Ruby相关文章