ruby-on-rails - Rails 3 + 设计 - 如何让设计以 JSON 响应

标签 ruby-on-rails json devise

我的环境是 Rails 3.0.1 和 Devise 1.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

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

关于ruby-on-rails - Rails 3 + 设计 - 如何让设计以 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522069/

相关文章:

java - JSONObject 未正确创建(可能是 JSON 格式错误?)

ruby-on-rails - Rails 4/设计/MongoDB : "Unpermitted parameters" using custom properties and strong parameters

ruby-on-rails - 在Rails中使用ruby中的哈希表查询/过滤器

ruby-on-rails - 如何在Rails中实现 "business rules"?

ruby-on-rails - 似乎无法安装 "use"RVM Ruby

python - 如何使用 Python 将 json 字段的值保存在列表中

json - 如何混合来自jq的json级别

ruby-on-rails - 如何让未登录的用户只访问受限页面一次?

ruby-on-rails-3 - 设计自定义登录错误

ruby-on-rails - 如何组合 ActiveRecord 对象?