新手问题 关于 respond_to format 的问题

zhaoguobin · September 24, 2013 · Last by zhaoguobin replied at September 24, 2013 · 2361 hits

Rails 3.0.9


# controller
respond_to :html, :js

def action_name

end

# view
action_name.js.erb

我记得以前写代码的时候不需要指定 format,直接访问 action_name_url,如果 view 中既有 action_name.html.erb,又有 action_name.js.erb,好像会返回 http status 300,就是说有多种返回格式,不知道选哪一个返回;如果 view 中只有 action_name.js.erb,就会直接返回 action_name.js.erb。

最近不知道修改了什么地方,如果 view 中只有 action_name.js.erb,如果不显式指定 action_name_url 的 format 为 js 的话,就会返回 template missing 错误。ajax 也同时出了错误,即使指定 dataType 是 script,仍然返回了 html,必须将 ajax 的 url 改成 url.js 才行。

问题出在哪里?请大家指点迷津!!!

顶起,大家别只顾着抢楼啊!

:remote => true

#3 楼 @miclle 谢谢回复。ajax 不就是 :remote => true 吗?

去掉 respond_to :html, :js 看看。

#5 楼 @Rei thanks。仍然提示 missing template

You need to Sign in before reply, if you don't have an account, please Sign up first.