Rails渲染模板混淆了I18n范围

时间:2015-03-23 22:16:21

标签: ruby-on-rails internationalization format render rails-i18n

控制器:

class ProfilesController < ApplicationController
  def show
  end
end

当控制器响应显示操作为JS时,show.js.erb包含以下内容:

$('#main-content').html('<%= j( render( template: "profiles/show.html.erb" ) ) %>');

问题是I18n.t的范围在尝试获取密钥时搞砸了: ActionView::Template::Error (translation missing: en.profiles.show.html.erb.followers)

如果我没有指定.html.erb部分,它会尝试渲染show.js.erb,这会发生无限循环,所以我必须提供html格式。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

将profiles / show.html.erb的主要部分提取为部分:

简档/ _show.html.erb

然后呈现为:

$('#main-content').html('<%= j raw render "profiles/show" %>') 

你也可以用同样的方式呈现你的个人资料/ show.html.erb

<%= render 'show' %> <%# renders the partial %>