Rails将文件呈现为HTML而不是JS。使用Ransack Gem

问题描述 投票:0回答:1

对这个人做了一个噩梦,并认为我会发疯。它必须是简单的东西。我有搜索工作在我的列表#index。它在搜索表单中使用remote:true呈现JS部分没有问题的结果。都好。然而....

我希望在应用程序的root_page上使用相同的功能。所以基本上是一个搜索栏,当用户搜索时,它会在条形图下方的部分显示搜索结果。我可以通过ransack正常工作,页面刷新,结果显示部分。它不会为我的生活渲染部分JS,就像上市控制器如何做到这一点。

代码位非常相似。我将在下面添加它们。 Ransack工作,只是不识别远程:真位。我已经研究过检查chrome并且实际上可以看到由于某种原因,表单类没有正确注册。我将截取工作和非工作位。

所以这只是Ransack搜索查询无法识别遥控器的问题:真实的外观。任何猜测? Ransack是否需要将特殊内容添加到表单中以使其能够在名为home.html.erb的页面中工作?而不是index.html.erb?会爱一组眼睛,直言不讳地告诉我,我在做一些愚蠢的事情。谢谢。

用于在listing_controller中搜索的工作代码片段

排名指数

def index
  @search = Listing.ransack(params[:q])
  @data = @search.result(:distinct => true)
  @listings = @data.to_a
end

列出index.html.erb

<%= search_form_for @search, remote: true do |f| %>
  <%= f.search_field :title_or_content_or_aircraft_highlights_or_airframe_engine_apu_weight_or_avionics_connectivity_or_interior_or_exterior_or_additional_info_cont, placeholder: "Search by keyword..", class: "form-control" %>
  <%= f.submit "Show results", class: "btn btn-secondary btn-lg  btn-block"  %>
<% end %>

<div class="col-md-9" id="aircraft_listing">
  <%= render partial: "shared/aircrafts-list" %>
</div>

列出index.js.erb

$("#aircraft_listing").html("<%= j render partial: 'shared/aircrafts-list' %>");

像梦一样工作。

页面控制器不会打球。搜索有效但不是ajax调用

网页#家

def home
  @search = Listing.ransack(params[:q])
  if params[:search].present?
    @data = @search.result(:distinct => true)
    @listings = @data.to_a
  end
end 

页面home.html.erb

<%= search_form_for @search, remote: true do |f| %>
  <%= f.search_field: title_or_content_or_aircraft_highlights_or_airframe_engine_apu_weight_or_avionics_connectivity_or_interior_or_exterior_or_additional_info_cont, placeholder: "Search by keyword..", class: "form-control-lg form-control-borderless" %>
  <%= f.submit "Search", class: "btn btn-secondary btn-lg" %>
<% end %>

<div id="home_search_list">
  <%= render partial: "shared/home-search-list" %>
</div>

页面home.js.erb

$("#home_search_list").html("<%= j render partial: 'shared/home-search-list' %>");
alert('Hello Rails');

搜索运行时,显然不会弹出警报。

部分命名(刚刚再次检查它们以确保我不会疯狂)

_aircrafts-list.html.erb
_home-search-list.html.erb

enter image description here

enter image description here

然后最后一点我可以看到遥控器显然没有在主页版本中发生。

enter image description here

enter image description here

由于某种原因,表单标签没有出现在主页示例中。我刚刚注意到这部分是在我的头发被拉出来的早晨之后。新鲜的眼睛会很棒。现在关于Ransack的另一件事,事实上我的路线有上市资源,但我确实只有root_path连接到我的页面控制器主动作,这与Ransack有关系吗?

谢谢大家。

javascript ruby-on-rails ajax ruby-on-rails-5 ransack
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.