Rails - 如何在不使用“:remote => true”的情况下将动作呈现为 JS
Rails - how to render an action as JS without using ":remote => true"?
在
视图中,我有一个链接,我称之为AJAX:
= link_to "Show post", post, :remote => true
和控制器中的操作:
def show
respond_to do |format|
format.js
end
end
当我单击此链接时,请求被称为 AJAX,并显示一个包含相应内容的弹出窗口。此外,所需的地址将添加到 URL 中(例如 web.com/posts/6
)。
目前为止,一切都好。
但是现在当我尝试放入 URL 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?
谢谢。
使用此链接(基本上只需将格式.js
添加到末尾):
web.com/posts/6.js
这也适用于您想要的任何其他类型的格式(例如 json
或 xml
)。只需确保在控制器操作中考虑这些格式即可。
替换
= link_to "Show post", post, :remote => true
由
= link_to "Show post", post, :remote => true, :format => 'js'
警告
@user984621是对的:与JS链接非常奇怪。
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 在不知道深度或父属性的情况下从对象中删除属性
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- Rails - 如何在不使用“:remote => true”的情况下将动作呈现为 JS
- 哪些值在没有严格比较的情况下被评估为true和false
- 为什么在不涉及iframe的情况下检查iframe父函数返回true ?
- 如何使原点标记在不使用抑制因子的情况下在显示方向上反弹:true
- 如何在没有break语句的情况下结束while(true)循环
- 如何在没有代码“可编辑 = true”的情况下调整完整日历中的事件大小
- JavaScript: 0在某些情况下代表true