Rails rails respond_to 新手问题

windwiny · July 24, 2014 · Last by huacnlee replied at July 25, 2014 · 3152 hits

rails 4 官方教程里有这样的代码

# app/controllers/users_controller.rb
# ......
def create
  @user = User.new(params[:user])

  respond_to do |format|
    if @user.save
      format.html { redirect_to @user, notice: 'User was successfully created.' }
      format.js   {}
      format.json { render json: @user, status: :created, location: @user }
    else
      format.html { render action: "new" }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end

else 条件里没有format.js {},执行到的时候不是会报错吗?

问题 2,如果 action 里没有 respond_to,只要 views 里能找到 create.XXX.erb,浏览器地址栏加任意已注册 MIME 扩展名都不会出错。 如果 action 里有 respond_to,没有用 format.xxx 列出的,即使能找到 views 里的模板,也会出错?

问题 3,js 好像又比较特殊,只要有 format.html,访问 create.js 取到的也是 html,怎么会这样?

  1. 不会爆错,只有你在请求 POST users.json 的时候才会
You need to Sign in before reply, if you don't have an account, please Sign up first.