我有一组宠物实例,每个实例都有一个名称、类型、性别和大小等等.我想迭代这个宠物实例的集合,并逐一显示。
到目前为止,这就是我所拥有的:
<% @pets.each do |pet| %>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Sex</th>
<th>Age</th>
<th>breed</th>
<th>Size</th>
<th>Picture</th>
<th>Description</th>
<th>Shelter_id</th>
<th>Shelter</th>
<th>Phone</th>
<th>Email</th>
<th>City</th>
<th>Zip</th>
<th>Like</th>
</tr>
</thead>
<tbody>
<tr>
<td><%= pet.name %></td>
<td><%= pet.species %></td>
<td><%= pet.sex %></td>
<td><%= pet.age %></td>
<td><% pet.breeds.each do |breed| %>
<li><%= breed.name %></li>
<%end%>
</td>
<td><%= pet.size %></td>
<td><%= image_tag pet.picture %></td>
<td><%= pet.description %></td>
<td><%= pet.shelter_id %></td>
<% shelter = Shelter.find(pet.shelter_id)%>
<td><%= shelter.name %></td>
<td><%= shelter.phone %></td>
<td><%= shelter.email %></td>
<td><%= shelter.city %></td>
<td><%= shelter.zip %></td>
<td><%= form_for pet, :url => { :controller => "favorite_pets", :action => "create" }, :html => {:method => :post} do |f| %>
<%= f.text_field :id %>
<%= f.submit %>
<% end %>
</td>
</tr>
</tbody>
</table>
<%end%>所以现在我需要两个想法。
1当用户单击submit按钮(<%= f.submit %>)发送POST请求时,我不希望页面重新加载,也不希望我重定向到另一个页面。我环顾四周,似乎包括在form_for中的form_for就能做到这一点,但我需要更多的帮助。
2,我想通过@pets来控制迭代,以便只显示第一个pet[0],每次单击<%= f.submit %>按钮时,不仅不会重新加载页面,还会显示数组pet[1]中的下一个索引。
我认为我需要设置一种计数器,每当用户单击<%= f.submit %>按钮时,就会增加宠物数组的索引。
有什么指导思想吗?
发布于 2015-03-13 03:10:05
如果我要这样做,我会使用一些javascript。所以你的提交按钮会变成更多的“添加按钮”--它实际上不会提交任何东西。它只需将该对象(在您的例子中是宠物及其信息)添加到javascript数组中,并在窗口上显示新对象(同样是宠物和信息)。然后创建另一个按钮来提交所有的宠物。( javascript数组)
https://stackoverflow.com/questions/29024097
复制相似问题