我正在单页网站上工作,并且已经将模板的ajax加载插入到网站的内容部分中。但是,我使用参数在使用多个模板时遇到了麻烦。
我有5个模板,共享/博客,共享/项目等。
在我的控制器中,我正在进行AJAX调用以取代'
pages = ['blog', 'projects', 'resume', 'gallery', 'contact']
def replace
@content = params[:content]
if not pages.include? content
content = 'blog'
end
respond_to do |format|
format.js
end
end
在replace.js.erb中,我有这段代码:
$(".content_inner").html("<%= j render(:partial => 'shared/blog') %>");
我一直只是说'分享/博客&#39;因为如果我像这样保持嵌入式Ruby静态,它适用于加载博客。但是,我无法弄清楚如何更换博客&#39; “共享/博客”的一部分在这里@content变量中的任何内容。我尝试了#{content}之类的东西,但无济于事。
(它确实正确接收内容变量,问题就在于使用它)
任何帮助将不胜感激!
感谢。
答案 0 :(得分:0)
字符串插值需要双引号。你在追求:
$(".content_inner").html("<%= j render("shared/#{@content}") %>");
一些注意事项:
:partial =>
。只需使用render <partial_name>
。app/views/application
。您应该在那里移动共享的部分,然后您可以使用render(@content)
简单地渲染它们。这对Rails如何工作很重要,因为它允许您覆盖控制器特定视图路径中的部分。例如,如果render("blog")
存在,则调用app/views/<controller_name>/blog.js.erb
将呈现app/views/application/blog.js.erb
,否则将回退到h5py
。