我有一些需要加载rails部分的javascript - 我不想在javascript文件中重复部分的HTML。
有没有办法通过浏览器URL访问这部分内容,以便JS可以加载它?
部分位置:
shared/_search.html.erb
我想用这样的东西抓取视图html:
example.com/shared/search.html
我可以通过文件系统显式路由它还是在本地获取它?
我不想创建一个控制器只是为JS渲染这个部分。
答案 0 :(得分:2)
您无需创建新的控制器文件。但是您确实需要一个动作来响应来自JS的传入请求。
如果您愿意,该动作可以特定部分呈现。您还可以通过让JS请求部分名称作为操作的参数之一来概括操作。
如果问题是您需要快速处理大量这些来电并且您不需要ActiveController机制(您不想为请求创建控制器实例),您可以使用Rails Metal - http://railscasts.com/episodes/150-rails-metal
补充:另一种选择是在您的服务器上存储模板文件(在公共/资产等)。然后:
答案 1 :(得分:1)
如上所述,您仍需要在控制器中创建操作。控制器始终需要在Rails中映射传入请求。
render 方法包含一系列用于展示内容的选项 - 您可以直接加载文件,甚至可以生成内联文本以作为操作调用的结果返回。