Rails & Mongoid - 滚动浏览特定的记录组
rails & mongoid - scroll through specific group of records
我有一个用Rails和mongoDB实现的网站来提交,读取和更新项目。
您可以在网站上有几个不同的区域查看项目并根据搜索关键字或不同的查询方法对其进行筛选。
例如:在主页上有一个要排序的类别列表。"用例"、"状态"、"级别"。当用户单击"用例"按钮时,将显示一个列表,其中包含更具体的用例类别,例如"电子商务",如果他们单击div将填充具有等于电子商务的用例的项目。从这一点开始,他们可以单击"详细信息"按钮,该按钮将显示该项目的所有属性。
在这个"详细"视图中,我有一个"下一步"和"后退"按钮。现在,它通过递增和减少项目 ID 号来滚动项目数据库。
我希望下一个和后退按钮能够滚动浏览它们在填充的div 中显示的列表。它可以通过一个名为 @items
的实例变量访问,该变量在项目控制器中初始化,但即使另存为全局变量也无法在详细信息视图中看到......
我想到的唯一选择是将项目列表作为 URL 参数传递 - 但这似乎是一种混乱的方法。
有没有其他方法可以在不同视图之间传递实例变量?
示例代码:
item_controller.rb:
def list
@items = Item.asc(:id)
end
list.html.erb:
<tbody>
<% @items.each do |item| %>
<% $list = @items%>
<tr>
<td><%= item.name %></td>
<td><% item.Use_Cases.each do |u| %>
<ul>
<li><%= u %></li>
</ul>
<% end %>
</td>
<td><%= item.Level %></td>
<td><%= item.Status %></td>
<td><%= link_to item, class: 'btn btn-default' do %>
<span class="glyphicon glyphicon-eye-open"></span> Details
<% end %>
</td>
</tr>
<% end %>
</tbody>
显示.html.erb - 滚动按钮:
<div class="panel-footer">
<%if @item.id != @first_id %>
<% #need to change to scroll to previous in $list %>
<%= link_to item_path(:id => (@item.id-1)), class: 'btn btn-default' do %>
<span class="glyphicon glyphicon-menu-left"></span> Back
<% end %>
<% end %>
<%if @item.id != @last_id %>
<% #need to change to scroll to next in $list %>
<%= link_to item_path(:id => (@item.id+1)), class: 'btn btn-default' do %>
Next <span class="glyphicon glyphicon-menu-right"></span>
<% end %>
<% end %>
</div>
使用相同的范围检索项目列表和单个项目及其下一个和上一个项目。
# item_controller.rb
def list
@items = items_scope
end
def show
@item = items_scope.find(params[:id])
@next_item_id = items_scope.select(:id).where("id > ?", params[:id]).first
@previous_item_id = items_scope.select(:id).where("id < ?", params[:id]).last
end
private
def items_scope
# this scope might depend on url parameters which, for example, present current chosen category
# `order("id ASC")` is a very important part. it makes this solution work
Item.order("id ASC").any_other_scopes_or_conditions_depending_on_chosen_category
end
在视图中:
<%= link_to item_path(:id => @next_item_id) ...
<%= link_to item_path(:id => @previous_item_id) ...
相关文章:
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 如何在从浏览缓存加载页面时执行javascript
- 循环浏览多个身体背景图像
- AngularJs对所有页面中的所有记录进行排序
- 显示浏览量最高的三篇文章
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 单击按钮时循环浏览匹配的表
- 循环浏览JavaScript对象并记录其属性
- JS函数在浏览器历史记录中返回特定域的上次浏览页面
- 如何防止浏览器在浏览浏览器历史记录时卡在Angular路线上
- 如何使用Jquery mobile解析/浏览历史记录
- 如何使用JavaScript清除浏览历史记录
- Rails & Mongoid - 滚动浏览特定的记录组
- 将 javascript 变量的值保存在浏览历史记录中
- 非SPA应用程序中的Backbone.js在浏览历史记录时出现问题
- 如何在Chrome扩展中使用历史API获得浏览历史记录
- 记录用户操作和页面浏览量的最有效方法是什么?
- Chrome扩展是否有可能获得用户的完整浏览历史记录?
- 你的浏览记录在谷歌Chrome扩展
- 哪个过渡类型获得所有的chrome浏览历史记录