好的,非常简单的问题,我使用的是AJAX方法,它的作用是在数据库中搜索查询的特定信息。我可以在控制台中看到正在进行查询,我甚至可以在Chrome开发者控制台中看到“发布”,当我点击它时,我可以看到我想要显示的HTML,但我对如何看待它没有任何想法在页面中渲染ir。
:3000 /已经有我要显示的html,但是如何更新?
我展示它的方式是......
<%if not @itemsok.nil?
@itemsok.each do |searches|
%>
<table>
<tr>
<td style="width:100px;"><%= searches.first_item.description %> </td>
<td style="width:150px; font-size:30px;"><%= searches.first_item_grade %> </td>
<td style="width:150px;"><%= searches.second_item.description %> </td>
<td style="width:150px; font-size:30px;"><%= searches.second_item_grade %> </td>
<td style="width:150px; font-size:18px;"><a href="<%= contribution_path(searches.id) %>">Show</a> </td>
</tr>
</table>
@itemsok是我从查询中保存项目的变量。
谢谢,我想我在这里错过了一些非常愚蠢的东西。 抱歉我的英语很糟糕。
更新:控制器如下所示:
def index
size1 = params[:size1]
number1 = params[:number1]
number2 = params[:number2]
quiero = params[:quiero]
tengo = params[:tengo]
if (not number1.nil?) and (number1 != "")
item1 = Item.find(number1)
elsif not quiero.nil?
quiero.strip!
item1 = Item.find(:first, :conditions => ['lower(description) LIKE ?', "%#{quiero.downcase}%"])
end
if (not number2.nil?) and (number2 != "")
item2 = Item.find(number2)
elsif not tengo.nil?
tengo.strip!
item2 = Item.find(:first, :conditions => ['lower(description) LIKE ?', "%#{tengo.downcase}%"])
end
if (item1 and item2)
@itemsok = Contribution.where("first_item_id = ?",item1.id).where("second_item_id = ?",item2.id).where("second_item_grade = ?",size1)
respond_to do |format|
format.html
format.js
end
end
答案 0 :(得分:2)
在您的respond_to块中,将format.js置于format.html。
之上确保控制器的视图文件夹中有index.js.erb。 如果您使用rails 3.1 +,则index.js.erb(来自操作名称)应该具有如下所示的jQuery语句:
$('#DOMelementToPlaceContent').html(<%= escape_javascript(render :partial => "partial/location") %>);
这将使用ID DOMelementToPlaceContent将DOM元素的内容替换为指定部分中的内容。
此外,您应该考虑将搜索逻辑移动到同一控制器中的搜索操作,在这种情况下,您需要在控制器的视图文件夹中使用search.js.erb文件。