5

如何渲染部分而不需要在文件名前提供“_”?有没有我可以调用不使用它的参数?

使用 RABL 和 Backbone 会出现此问题 - 使用 RABL 需要我在视图中有一个文件,例如“index.json.rabl”。但是,当我在页面加载中使用嵌入 JSON 时(与 Backbone 一样),我需要调用文件“_index.json.rabl”。这两个文件是完全相同的,只是需要有不同的名称。我希望只使用 1 个文件“index.json.rabl”并强制 render() 函数查找该文件名,而不使用“_”。

=> 编辑

人们在下面描述的标准解决方案不起作用。那可能是RABL问题?下面的代码总是转到 views/countries/_index.json.rabl 文件。

在我的 .erb 文件中

countryList.reset(<%=get_json("countries", "index", @countries)%>);

在我的 application_helper.rb 文件中

def get_json(view_path, view_action, object)
    path = view_path + '/' + view_action + ".json"
    return raw(render(path, object: object, :formats => [:rabl]))
end
4

4 回答 4

2

您可以通过执行以下操作来呈现文件:

render :file => "filename"
于 2012-07-09T15:12:20.543 回答
1

来自RABL 上的 RailsCast #322

<div id="articles" data-articles="<%= render(template: "articles/index.json.rabl") %>" >

从这里开始,然后找出问题所在。但很明显,这render template: path是您想要的语法。

于 2012-07-09T17:21:39.970 回答
1

你试过了render :template => "file_name"吗?

于 2012-07-09T14:59:11.390 回答
0

好的尝试:

<%= render :file => 'views_directory/index' %>

views_directory视图中目录的名称在哪里8)

老的:

如果内容相同使用:

render :partial => "index" 

在 index.json.rabl 和 _index.json.rabl 中的内容

于 2012-07-09T15:10:54.930 回答