[英]Respond to js rendering as HTML Rails
我在渲染js文件時從form_tag cuz渲染部分圖像時遇到問題,它是作為HTML生成的。 我不知道發生了什么,因為我最近使用模式進行了測試,一切都很好。 你知道我在做什么錯嗎?
我有2個文件_file.html.erb和file.js.erb
file.js.erb
$("#search_results").html("<%= escape_javascript(render 'search') %>");
View
<%= form_tag(search_sample_path(format: :js) ,method: :post, remote: true, id: "search_script") do %>
<%= text_field_tag :parameter, class: "form-control" %>
<div class="row">
<div class="col-md-12">
<%= button_tag icon("fa", "search", "Search"), class: "btn btn-success" %>
</div>
</div>
<% end %>
<div class="row">
<div class="col-md-12">
<div id="search_results">
</div>
</div>
</div>
控制者
def search
if !(search_params[:sample].empty?)
model = search_params[:method]&.sub("_", " ").titlecase.sub(" ", "")
@method = model.constantize.joins(:sample).where(:samples => { sample_name: search_params[:sample] }).take
unless search_params[:date_range].empty?
date_start = search_params[:date_range][0, 10]
date_end = search_params[:date_range][12, search_params[:data_range].length]
@method = @method.where("Date(created_at) BETWEEN ? AND ?", date_start, date_end)
end
respond_to do |format|
format.html
format.js
end
else
redirect_to samples_path
end
end
Search partial
<div class="card">
<div class="card-body">
<%= @method %>
</div>
</div>
Started GET "/samples.js?utf8=%E2%9C%93&sample=QC-PM%2F1&method=furnance&date_range=&button=" for 127.0.0.1 at 2019-08-05 13:19:03 +0200
Processing by SamplesController#index as JS
Parameters: {"utf8"=>"✓", "sample"=>"QC-PM/1", "method"=>"furnance", "date_range"=>"", "button"=>""}
User Load (1.0ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
↳ app/controllers/application_controller.rb:7
Unpermitted parameters: :utf8, :button
Unpermitted parameters: :utf8, :button
Unpermitted parameters: :utf8, :button
Furnance Load (0.9ms) SELECT `furnances`.* FROM `furnances` INNER JOIN `samples` ON `samples`.`id` = `furnances`.`sample_id` WHERE `samples`.`sample_name` = 'QC-PM/1' LIMIT 1
↳ app/controllers/samples_controller.rb:6
Unpermitted parameters: :utf8, :button
Rendering samples/search_results.js.erb
Rendered samples/_results.html.erb (0.4ms)
Rendered samples/search_results.js.erb (20.1ms)
Completed 200 OK in 92ms (Views: 76.8ms | ActiveRecord: 1.9ms)
創建search.js.erb
$("#search_results").html("<%= j(render(partial: 'search', locals: {method: @method})) %>");
修改部分搜索
<div class="card">
<div class="card-body">
<%= method %>
</div>
</div>
我找到了解決方案,問題在於參數。 我使用了Rails(:method)使用的參數名稱。 希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.