使用Rails 3.1 jquery_ujs,我有一个链接有:遥控=> true,并控制新的行动,JS响应和渲染new.js.erb其中包含:
$('#post-form').html('<%= escape_javascript(render(:partial => "form")) %>');
Run Code Online (Sandbox Code Playgroud)
它呈现_form.html.erb部分.这有效.
现在我想使用Coffeescript,但将new.js.erb重命名为new.js.coffee.erb不起作用.资产管道是否仅适用于app/assets?我究竟做错了什么?谢谢.
在控制器上运行以下代码时出现以下错误.请注意:formats=>[:json]
错误,即使:formats=>[:html]
传递给render_to_string
我究竟做错了什么?有任何想法吗?实际上,下面的代码工作正常,不确定哪些更改会影响此错误.Rails版本:3.2.8
顺便说一下模板肯定到位:loc/_search_details.html.erb
额外的问题:我在哪里可以找到api文档,显示哪些参数可以传递给render_to_string以及它是如何工作的?
错误: ActionView :: MissingTemplate(缺少部分loc/search_details,{:locale => [:en],:formats => [:json],:handlers => [:erb,:builder,:coffee]}.
respond_to do |format|
format.json {
@detail_str = render_to_string(:partial => 'loc/search_details', :layout => false, :formats=>[:html], :locals => {:beer_results => @beer_results})
@list_str = render_to_string(:partial => 'loc/search_list', :layout => false,:formats=>[:html], :locals => {:beer_results => @beer_results})
render :json => {:results => @results_hash, :result_details => @detail_str, :result_list => @list_str }
}
end
Run Code Online (Sandbox Code Playgroud) 我正在使用simple_form gem并生成我正在指定remote:true选项的表单,如下所示:
<%= simple_form_for @webinar, validate: true, remote:true do |f| %>
Run Code Online (Sandbox Code Playgroud)
因此,表单的输出html是以下片段:
<form accept-charset="UTF-8" action="/webinars" class="simple_form new_webinar" data-remote="true" data-validate="true" enctype="multipart/form-data" id="new_webinar" method="post" novalidate="novalidate"> ... </form>
Run Code Online (Sandbox Code Playgroud)
在我检查时,使用标准的form_for帮助器是在使用remote:true选项时将data-remote ='true'添加到表单中.正如你从生成的html中看到的那样,当我使用simple_form gem时,也有这样的属性.
所以,在我的控制器中,我有:
def create
@webinar = Webinar.new(params[:webinar])
respond_to do |format|
if @webinar.save
format.html { redirect_to @webinar, notice: 'Webinar was successfully created.' }
format.js
format.json { render json: @webinar, status: :created, location: @webinar }
else
format.html { render action: "new" }
format.json { render json: @webinar.errors, status: :unprocessable_entity …
Run Code Online (Sandbox Code Playgroud)