簡體   English   中英

Rails:使用jQuery加載部分

[英]Rails: loading partial with jQuery

我想通過請求返回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'

編輯:好的,我是個白痴,這是文件名中的拼寫錯誤...

你可以發布rails控制台和search_result部分的輸出嗎? 我懷疑Rails要么找不到你的部分文件,要么部分試圖使用未定義的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM