如何让Desive在rails 3中呈现javascript?

如何让Desive在rails 3中呈现javascript?,javascript,ruby-on-rails,ruby-on-rails-3,layout,devise,Javascript,Ruby On Rails,Ruby On Rails 3,Layout,Devise,我正试图让Desive在出现错误时使用特定的错误模板。它正在进入正确的页面,但它试图将javascript呈现为布局本身 以下是my application.rb layout_by_资源代码: def layout_by_resource if devise_controller? && !current_user.nil? && !current_user.role.nil? && (current_user.role == "supera

我正试图让Desive在出现错误时使用特定的错误模板。它正在进入正确的页面,但它试图将javascript呈现为布局本身

以下是my application.rb layout_by_资源代码:

def layout_by_resource
  if devise_controller? && !current_user.nil? && !current_user.role.nil? && (current_user.role == "superadmin" || current_user.role == "admin")
    "admin"
  elsif devise_controller? && !current_user.nil? && !current_user.role.nil? && current_user.role == "user"
    "user"
  elsif devise_controller? && current_user.nil?
    respond_to do |format|
      format.js { render :action => "layouts/errors", :layout => false, :locals => { :current_object => resource } }
      format.html { "application" }
    end
  else
    "application"
  end
end
这是我的设计表格代码:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :remote => true) do |f| %>

<% end %>
resource_name,:url=>registration_path(resource_name),:remote=>true)do | f |%>
将上述代码段替换为:

respond_to do |format|
      # Show a neat html page inside the app's layout for web users
      format.html { render :template => "errors/#{status}", :status => status }

      # Everything else (JSON, XML, YAML, Whatnot) gets a blank page with status
      # which can then be understood and processed by the API client,
      # JavaScript library (on Ajax) etc.
      format.all { render :nothing => true, :status => status }
    end
如果要为其创建单独的模板,可以这样做,并将其保存在
/errors/***.html
中,然后进行渲染


或者,您可以使用javascript在客户端处理错误。

因此,我想,迟做总比不做好(但希望这能帮助通过谷歌发现此页面的任何人)

为了让Desive正确呈现javascript,我必须做的是告诉它不要呈现任何类型的布局,ala:

render "fail.js", :layout => false

这就成功了,现在我的JS按预期启动。

谢谢,但这些选项都没有帮助,因为当Deave注册表出现错误时,我需要呈现errors.JS.erb文件。
render "fail.js", :layout => false