在视图中,我有一个我称之为AJAX的链接:
= link_to "Show post", post, :remote => true
和控制器中的操作:
def show
respond_to do |format|
format.js
end
end
当我点击此链接时,该请求被称为AJAX,并显示一个包含相应内容的弹出窗口。此外,所需地址也会添加到网址中(例如web.com/posts/6
)。
到目前为止一切顺利。
但是现在当我尝试输入网址web.com/posts/6
时,我只收到一条错误消息:
Processing by PostsController#show as HTML
Parameters: {"id"=>"6"}
Post Load (0.6ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 6 LIMIT 1
Completed 406 Not Acceptable in 535ms
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/posts_controller.rb:14:in `show'
当我将URL web.com/posts/6
添加到浏览器时,我试图实现这一点,然后页面的呈现方式与我点击带有:remote => true
选项的链接的方式相同。
怎么做?如何强制控制器中的动作呈现为JS?
谢谢。
答案 0 :(得分:0)
使用此链接(基本上只需将格式.js
添加到结尾):
web.com/posts/6.js
这也适用于您想要的任何其他格式(例如json
或xml
)。只需确保在控制器操作中考虑这些格式。
答案 1 :(得分:0)
替换
= link_to "Show post", post, :remote => true
通过
= link_to "Show post", post, :remote => true, :format => 'js'
警告的
@ user984621是对的:获取与js的链接非常奇怪。