我在单击按钮时渲染粒子时遇到问题。我收到了错误
HelpController#FAQ_help缺少此请求格式的模板 和变种。 request.formats:[“text / html”] request.variant:[]
main_page.html.erb
<%= link_to "FAQ", FAQ_help_path %>
<div id="content">
</div>
help_controller.rb
def FAQ_help
respond_to do |format|
format.html {}
format.js
end
end
FAQ_help.js.erb
$('#content').html("<%= render :partial => 'FAQ_help' %>");
_FAQ_help.html.erb
<div>
<h1> This is the FAQ </h1>
</div>
的routes.rb
get 'FAQ_help', to: 'help#FAQ_help'
答案 0 :(得分:1)
这个怎么样:
# main_page.html.erb
<%= link_to "FAQ", FAQ_help_path, remote: true %>
和
# faq_help.js.erb
$('#content').html("<%= escape_javascript(render :partial => 'FAQ_help')
干杯!
答案 1 :(得分:0)
由于您已为此请求创建了一个方法,因此我会更清楚地定义它:
def FAQ_help
respond_to do |format|
format.html {}
format.js {render: FAQ_help}
end
end
如果你想保持你的控制器清洁,我会通过链接传递一个参数,并检查是否存在婴儿车,如果它是渲染FAQ部分:
查看:
<link_to "Your FAQ" your_path, data: {method: :get, :remote => true, params: { faq: "#{current.user_name}" }.to_param }, :class =>"button" %>
控制器:
if params[:faq].present?
respond_to do |format|
format.html {}
format.js {render: FAQ_help}
end
else
respond_to do |format|
format.html {}
format.js {} #your default view for this method
end
end
这对于显示IE来说很方便:根据请求显示不同的内容
ie: parms =bob # displays bobs FAQ
ie: parms =ted # displays teds FAQ
此技术类似于您创建搜索时所实现的技术。