【发布时间】:2013-12-18 04:06:34
【问题描述】:
jQuery .get() 如何与 Rails 方法一起工作?我在documents 控制器中设置了一个名为templates 的方法,我想从单独的JS 文件中的JS 方法访问该方法。通过一些研究,我发现使用.get() 是访问Rails 方法的最佳方式,但是当我这样做时,例如var templates = $.get("/documents#templates", function (data) { console.log(data) },它只是控制台记录整个/documents HTML DOM 结构。
如果你愿意,我猜我需要“劫持”路由,但我尝试添加自定义路由,控制台日志仍然返回 HTML 页面,甚至没有到达我的 Rails 控制器。
如果有帮助(尽管我对此表示怀疑,因为完全删除它不会改变控制台日志结果),这是我在控制器中的 templates 方法:
def templates
@templates = DocumentTemplate.all
@output = []
@templates.each do |template|
@output = template.content
end
respond_with(@output)
end
【问题讨论】:
-
刚刚发现您需要为 $.get 的第一个参数指定一个 URL,例如“documents/templates”,而不是 Rails 控制器映射(“documents#templates”)。要查找 URL,请在控制台中运行
rake routes或在 routes.rb 中明确指定路径(例如get 'documents/templates', to: 'documents#templates')。 -
谢谢!在
routes.rb中声明路径加上@Oli 下面的方法效果很好。
标签: jquery ruby-on-rails ruby-on-rails-3 get rails-routing