私は部分的に読み込むjavascriptを返すアクションを要求することで検索結果を動的に表示したいと考えています。私はいくつかの読書をして、escape_javascriptはそれを行う正しい方法のように思えます。しかし、何も表示されず、私は500の内部サーバーエラーを取得します。ここでRails:jQueryで部分的に読み込む
は、コントローラ内のいくつかのコード
です:検索フォームで
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にプレーンテキストを入れたときに動作します
$('#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/[email protected]/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'
EDIT:[OK]を、私はバカだけど、それは
私が帰ってきたら投稿します。しかし、#search_result divには何も表示されず、部分的にプレーンテキストでも機能しません。したがって、.js.erbと部分的なものの間でなければなりません。 – FunkyFrankie
あなたのレールコンソールからの出力(つまり、あなたの起動した 'rails server ')が参考になります。 – Brian