0

我第一次使用 rails-backbone gem。我不得不怀疑如何使用骨干进行重定向。按照我在github页面上提供的步骤进行操作,一切正常。但是当我看到我的控制器时,它在创建操作中包含以下行

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
4

1 回答 1

0

有很多方法可以做到这一点。1)在你的控制器中,而不是渲染json对象,只需在views/logins下创建create.js.erb,然后将js代码放入重定向页面。应该是这样的

创建.js.erb:

window.location.href = <%= users_path(@user) %>

2)您可以在创建记录成功后在主干回调中执行此窗口重定向js代码。请参考这个骨干官方网站了解如何成功回调。

于 2014-05-18T06:14:59.160 回答