【发布时间】:2014-07-06 05:58:30
【问题描述】:
我是第一次使用 rails-backbone gem。我不得不怀疑如何使用骨干进行重定向。按照我在github页面上提供的步骤进行操作,一切正常。但是当我看到我的控制器时,它在 create action
中包含以下行respond_to do |format|
if @login.save
format.html { redirect_to @login, notice: 'Post was successfully created.' }
format.json { render action: 'show', status: :created, location: @login }
效果很好,但我可以看到对于 json 对象,它呈现显示动作,因此无法重新加载页面,因为它需要 ID 作为属性,我可以使用用于显示的静态页面是一种解决方案,但我需要它来重定向它以显示动作而不是渲染它就像时所做的那样格式为 html。怎么办?
这是我的完整控制器:
class LoginsController < ApplicationController
before_action :set_login, only: [:show]
def index
end
def new
@login = Login.new
end
def show
end
def create
@login = Login.new(login_params)
respond_to do |format|
if @login.save
format.html { redirect_to @login, notice: 'Post was successfully created.' }
format.json { render action: 'show', status: :created, location: @login }
else
format.html { render action: 'new' }
format.json { render json: @login.errors, status: :unprocessable_entity }
end
end
end
private
def set_login
@login = Login.find(params[:id])
end
def login_params
params.require(:login).permit(:email, :password)
end
end
【问题讨论】:
-
您无法重新加载是因为您使用 JSON 的方式,而不是因为 JSON 响应没有重定向。 JSON发生在后台,即AJAX,所以重定向/不重定向它不会改变你得到的响应中的任何东西。如果您愿意,您可以使用收到的 JSON 响应在 Javascript 中重定向用户。
-
我猜也一样。应该发生重新加载,我使用对象的方式可能有错误。
-
无论如何我已经更新了问题,看看你是否在我的控制器上发现任何错误
-
抱歉,我不是骨干专家,您需要对 HTML/JS 进行更改才能使其正常工作。控制器看起来不错。
-
好的thanx寻求帮助.. :)
标签: javascript ruby-on-rails backbone.js ruby-on-rails-4 backbone-rails