我有一个Rails应用程序,我正在使用jQuery在后台查询我的搜索视图.有字段q
(搜索词)start_date
,end_date
和internal
.该internal
字段是一个复选框,我正在使用该is(:checked)
方法来构建查询的URL:
$.getScript(document.URL + "?q=" + $("#search_q").val() + "&start_date=" + $("#search_start_date").val() + "&end_date=" + $("#search_end_date").val() + "&internal=" + $("#search_internal").is(':checked'));
Run Code Online (Sandbox Code Playgroud)
现在我的问题是params[:internal]
因为有一个字符串要么包含"true"或"false",我需要将它转换为boolean.我当然可以这样做:
def to_boolean(str)
return true if str=="true"
return false if str=="false"
return nil
end
Run Code Online (Sandbox Code Playgroud)
但我认为必须有一种更加Ruby的方式来解决这个问题!不存在......?
这让我多次思考.在这个例子中我有一个数组,这个数组有10个值,应该由commatas分隔,但在最后一个之后不应该有一个逗号,所以我使用了一个计数器:
data = ["john", "james", "henry", "david", "daniel", "jennifer", "ruth", "penny", "robin", "julia"]
counter = 0
count = data.size
sentence = String.new
data.each do |name|
if counter == (count-1)
sentence += name
else
sentence += "#{name}, "
end
counter += 1
end
Run Code Online (Sandbox Code Playgroud)
但这是如此肮脏,没有任何方法可以找出当前对象(在本例中为"name")是第一个还是迭代中的最后一个?
我正在使用prawn创建包含表格格式和一些列表的大量数据的pdf.列表的问题是我只是使用文本作为列表,因为没有语义等同于ul> li列表,就像我在webfrointend中使用它们一样.因此列表不合理.使用多行的列表点看起来很狡猾,因为我不适合列表图标.如何在虾中实现看起来不像垃圾的列表?
在我看来,片段缓存和急切加载 - 至少有时 - 在某种程度上相互矛盾.假设我有一个用户,他有很多帖子,每个帖子都有很多评论,反过来也可以有很多评论等等.
当我必须渲染页面时,我可以选择热切地加载用户,所有帖子,所有评论等等,以避免数据库n-1次.或者我可以懒惰地加载每个对象并依赖片段缓存来仅查询数据库中的新对象或已更改的对象.使用片段缓存和急切加载似乎都是浪费,因为我可能会做一个非常复杂的查询并实例化很多对象只是为了使用它们中的一小部分.
但是,如果我有一个应用程序,其中一个用户有许多Foos,而这些Foos又有很多Bars等等,但是其中每个Foo都是同时创建完整的所有Bars及其相关对象,从那时起就永远不会改变.在这种情况下,我想对已经渲染的Foos使用片段缓存,但是当我必须加载一个带有所有相关对象的新Foo时,要使用预先加载.毕竟,在更细粒度的级别缓存片段没有任何好处.
Rails实现这一目标的最佳方式是什么?我想我可以做一个查询来获取Foo的id,然后在我必须渲染每个Foo时用急切加载进行显式查找.这样做有更好/更优雅/更惯用的方式吗?
performance caching ruby-on-rails fragment-caching eager-loading
强参数问题严重.它在我的大约200个动作中工作得很好,但在一个它没有,因为我在那里使用参数非常动态,我也因为应用程序设计而无法改变它.
所以我想在这个特定的操作中禁用强参数验证.有没有办法做到这一点?
我在Rails环境中有两个脚本,必须全天候运行.我正在使用远程服务器,因此我需要使用启动脚本ssh
,这意味着我需要始终保持ssh窗口的打开状态.
我正在寻找一种在后台运行这些脚本的简单方法,以便在我关闭ssh连接后不会取消它们.
我不想用screen
.我认为必须有更简单的方法来处理这个问题.不存在吗?
我正在编码文件交换,一些文件不应该在没有ssl的情况下下载.所以我需要检查连接是否是ssl编码.这取决于网络服务器还是所有网络服务器的方法?
我的网站上有很多缓存片段,因为我使用片段action_suffix
缓存在我的应用程序模板中使用缓存.我使用这个用于导航,例如,...像这样:
<% cache(:action => params[:action], :action_suffix => "navigation_#{request.path}") %>
<%= render 'navigation_entries/navigation' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但现在我有一个小问题到期缓存碎片.我需要的是缓存片段的所有密钥列表.我不仅仅看了一下文档,但我找不到任何东西.
有没有办法列出所有片段密钥?
我有一台非常老的PC运行DOS并使用ISA卡从旧式测试设备接收数据.我想要做的是将打印机(LPT)线连接到旧PC,并将另一台带有linux的PC连接到线路的另一侧.linux pc应该像它的打印机设备一样,因此它可以接收应该打印的数据.跟进我想解释这些数据,......
我想制作一个只能通过特定网络连接访问的应用程序。更明确地说,这将是一个出勤申请。用户只能通过特定的网络连接签入。如果他们连接到其他网络,他们将无法签入。我该如何在 Ruby on Rails 中做到这一点。请给我一些想法。其实我需要知道如何检测特定的网络连接?
提前致谢。