Rails Edge Guides,AJAX示例 - 为什么同时使用“format.js”和“format.json”
Rails Edge Guides, AJAX example- why use both 'format.js' and 'format.json'?
在 Rails Edge Guide 的"Working with Javascript"部分,给出了一个如何在"用户"控制器中构建"create"操作的示例,以便将 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是不同类型的响应。 我的问题是,如果在"create"操作的 if 语句的前半部分指定了这两种格式,为什么在后半部分不需要这两种格式? 这是否意味着Javascript在成功时使用'create.js.erb'文件,但在失败时使用不这样做?
是的,你是对的。 根据浏览指南,看起来在失败的情况下,您不想对 js 做任何事情。 如果你要把
format.js {}
在失败块中,它也会尝试执行render @user
部分,这可能会导致错误。
如果你真的想在失败时执行一个js块,你可以像其他格式一样执行
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- Rails 4 ActionController::UnknownFormat format.js error
- Rails Edge Guides,AJAX示例 - 为什么同时使用“format.js”和“format.json”
- 在format.html和format.js之间显示Rails3 Flash消息
- Rails 3.1:使用'respond_to .的新方法format.js& # 39;没有'page
- 为什么我的Rails控制器期望JSON从format.js调用
- Error: ActionController::Unknown Format (for format.js)
- base_url in a .JS format
- Moment.min.js这个.Format不是一个函数
- 我如何使用format.js返回错误消息并更新我的UI
- Node.js util.format() as String.prototype
- Rails: format.js将我重定向到一个空白页面
- Js-routes在url中添加(::format)
- Rails Form_Tag Ajax Format.js ActionController::未知格式
- Moment.js-Moment().format()创建无效日期
- 使用responsdto|format|format.js在一个模态中显示一条消息
- JavaScript: format and Unformat Number: Library numbro.js