【发布时间】:2015-08-03 07:00:04
【问题描述】:
我正在尝试生成仅在单击搜索时生成表格但似乎无法正常工作的应用程序。
我尝试过的如下。
控制器:
def index
@q = Link.ransack(params[:q])
@links = @q.result(distinct: true)
respond_to do |format|
format.html # index.html.erb
format.js #index.js.erb
end
end
index.html.erb:
<h1>Listing Links</h1>
<!= Implements search feature using gem "Ransack" =>
<p><%= link_to 'Advanced Search', advanced_search_links_path %></p>
<%= search_form_for @q, remote: true do |f| %>
<%= f.label :name_or_address_cont %>
<%= f.search_field :name_or_address_cont %>
<%= f.submit class: 'search_submit' %>
<% end %>
<div id = 'result_table'>
</div>
<script type="text/javascript">
var ready;
var result_table = $('#result_table');
ready = function(){
$('.search_submit').click(function(event){
$('#result_table').replaceWith('<%= j render('table') %>');
});
};
$(document).ready(ready);
$(document).on('page:load',ready);
</script>
_table.html.erb:
<!= Implements sorting attributes using gem "Ransack" =>
<table>
<thead id= 'result_head'>
<tr>
<th><%= sort_link @q, :name, "Name" %></th>
<th><%= sort_link @q, :address, "Address" %></th>
<th>Availablity</th>
<th>like</th>
<th>dislike</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @links.each do |link| %>
<tr>
<h2>
<td><%= link_to link.name, link %><br></td>
<td><%= link_to link.address, link %><br></td>
<td><%= link_to link.bedroom, link %><br></td>
<td><%= link.get_upvotes.size %></td>
<td><%= link.get_downvotes.size %></td>
</h2>
</tr>
</tbody>
<% end %>
</table>
我遇到的问题是,每当我点击提交时,
它总是生成数据库中每个数据的表
无论我搜索哪个字母。
我什至不确定在第一个表生成之后,当我点击搜索另一个搜索时,表是否重新生成。
我想知道 Ajax 是否缺少一些东西或什么。
非常感谢您的所有帮助。
请注意,我正在使用 Ransack 来实现我的搜索功能。
谢谢。
【问题讨论】:
标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4