在Rails Edge 指南的“使用 Javascript”部分中,给出了一个示例,说明如何在“用户”控制器中构建“创建”操作,以便将 AJAX 集成到创建操作中:
# 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
我在这里读到“format.js”和“format.json”都是需要的,因为 Javascript 和 JSON 是不同类型的响应。我的问题是,如果在“创建”操作的 if 语句的前半部分中指定了这两种格式,为什么在后半部分也不需要这两种格式?这是否意味着 Javascript 在成功时使用“create.js.erb”文件,但在失败时不使用?