【问题标题】:Rails: loading partial with jQueryRails:使用 jQuery 加载部分内容
【发布时间】:2016-08-03 12:43:57
【问题描述】:

我想通过请求返回 javascript 的操作来动态显示搜索结果,该操作会加载部分。我已经阅读了一些内容,而 escape_javascript 似乎是一种正确的方法。但是什么也没显示,我收到 500 内部服务器错误。

这是一些代码

在控制器中:

 def search
    @user = User.find_by email: params[:email]

    respond_to do |format|
      if @user && @user.user_type_type == "Employee"
        format.js
      else
        format.js {render "failed_search"}
      end
    end
  end

使用搜索表单查看:

<div id="search-employee">
  <%= form_tag({controller: "employees", action: "search"}, method: :get, remote: true) do %>
      <%= label_tag 'email', "Search for:" %>
      <%= text_field_tag 'email'%>
      <%= submit_tag("Search") %>
  <% end %>

  <div id="search-result" class="row">
  </div>
</div>

动作返回的js(当我将纯文本放入html而不是转义js时有效)

$('#search-result').html("<%= escape_javascript(render :partial => 'employees/search_result') %>");

我会向您展示部分内容,但即使我将纯文本放在那里也不会呈现,所以不是这样。

这是控制台的输出,确实看起来很有信息量,我一定错过了。

Completed 500 Internal Server Error in 10ms (ActiveRecord: 0.2ms)

ActionView::Template::Error (Missing partial employees/_search_result.html.erb with {:locale=>[:en], :formats=>[:js, :html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
  * "/home/johnny/Desktop/ror/pub_crawler/pub_crawler_1.2/app/views"
  * "/home/johnny/.rvm/gems/ruby-2.2.1@rails4.2/gems/devise-3.5.6/app/views"
):
    1: //does not work
    2: $('#search-result').html("<%= escape_javascript(render :partial => 'employees/search_result.html.erb') %>");
    3: 
    4: $('#search-result').html('<div class="col-3-md"><%= @user.user_type.name %></div> <div class="col-3-md"><%= @user.user_type.surname %></div> <div class="col-3-md"></div>');
  app/views/employees/search.js.erb:2:in `_app_views_employees_search_js_erb__3438283462284537863_70351967525560'
  app/controllers/employees_controller.rb:12:in `search'

编辑:好吧,我是个白痴,这是文件名的错字...

【问题讨论】:

    标签: javascript jquery ruby-on-rails render partial


    【解决方案1】:

    您能否发布您的 rails 控制台和 search_result 部分的输出?我怀疑 Rails 要么找不到你的部分文件,要么部分试图使用未定义的变量。

    【讨论】:

    • 我会在我在家的时候发布。但是#search_result div 中什么也没有出现,即使在部分纯文本中也不起作用。所以它必须介于 .js.erb 和部分之间
    • 我想你的 rails 控制台的输出(也就是说,无论你从哪里开始 rails server)都会提供信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2011-06-04
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多