小编Tom*_*man的帖子

确定元素相对于其偏移父元素的定位祖先的位置

我想确定#target的偏移相对于#a下面的HTML文档中-即,我想找到的价值观xy

http://dl.dropbox.com/u/2792776/screenshots/2012-06-09_1814.png

jQuery 有position(),但$("#target").position()返回#target相对于其父偏移量的偏移量,即#c(不是#a

我需要一个等价于的函数,$.fn.position()而是返回相对于目标的“偏移祖先”的位置,而不是它的直接偏移父级。例如:$("#target").positionRelativeTo("#a")

jquery dom position offset

5
推荐指数
1
解决办法
1814
查看次数

对象关系映射:实现getter的最佳方法是什么?

我打电话$user->get_email_address()怎么办?

选项1:根据需要从数据库中提取电子邮件地址

public function get_email_address() {
    if (!$this->email_address) {
        $this->read_from_database('email_address');
    }
    return $this->email_address;
}
Run Code Online (Sandbox Code Playgroud)

选项2:在创建对象时从数据库中提取电子邮件地址(以及其他用户属性)

public function __construct(..., $id = 0) {
    if ($id) {
        $this->load_all_data_from_db($id);
    }
}

public function get_email_address() {
    return $this->email_address;
}
Run Code Online (Sandbox Code Playgroud)

我的基本问题是,最好是最小化数据库查询的数量,或者最好是最小化从数据库传输的数据量.

另一种可能性是,最好加载您最需要的属性/在创建对象时包含最少的数据以及其他所有需要的属性.

一个后续问题:像Activerecord这样的ORM抽象框架有什么作用?

php oop mapping orm

4
推荐指数
2
解决办法
834
查看次数

为什么rails帮助器不是面向对象的呢?

例如,为什么日期帮助器的写法如下:

time_ago_in_words(@from_time)
Run Code Online (Sandbox Code Playgroud)

而不是像这样:

@from_time.time_ago_in_words
Run Code Online (Sandbox Code Playgroud)

这是一个明确的设计错误/不一致吗?或者有什么理由吗?

oop ruby-on-rails helpers

4
推荐指数
1
解决办法
380
查看次数

在Ruby中对数组进行排序忽略文章("the","a","an")

在我的应用程序中,我需要显示一个歌曲列表.现在我这样做:

Song.all.sort {|x,y| x.artist.name <=> y.artist.name }
Run Code Online (Sandbox Code Playgroud)

不幸的是,这意味着"臭名昭着的大"将与T一起排序,而我希望他与N一起排序(即,我想忽略文章 - "the","a"和"an" - 对于排序的目的.

我的第一个想法是这样做:

Song.all.sort {|x,y| x.artist.name.gsub(/^(the|a|an) /i, '') <=> y.artist.name.gsub(/^(the|a|an) /i, '') }
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.思考?

ruby ruby-on-rails

4
推荐指数
1
解决办法
946
查看次数

实施排行榜

我网站上的用户为说唱歌词创建注释(示例).我想创建一个排行榜,以奖励创建最多注释的人.

排行榜应该跟踪每个用户整体创建的注释数量,以及他在过去一周,一天中创建的数量等.

我实现整个排行榜没有问题:

@users = User.all

<table>
  <tr>
    <th>Contributor</th>
    <th>Annotations</th>
  </tr>
    <% @users.sort_by{|u| u.annotations.size }.reverse.each do |u| %>
      <tr>
        <td><%= u %></td>
        <td><%= u.annotations.size %></td>
      </tr>
    <% end %>
</table>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试实现(比如说)每日记分牌时,我正在重复代码并且操作非常缓慢(因为它必须遍历内存中的每个注释而不是依赖于数据库排序/计数):

<table>
  <tr>
    <th>Contributor</th>
    <th>Annotations</th>
  </tr>
    <% @users.sort_by{|u| u.annotations.select{|a| a.created_at > 1.day.ago }.size }.reverse.each do |u| %>
      <tr>
        <td><%= u %></td>
        <td><%= u.annotations.select{|a| a.created_at > 1.day.ago }.size %></td>
      </tr>
    <% end %>
</table>
Run Code Online (Sandbox Code Playgroud)

实施每日/每周记分牌的最佳方法是什么?

leaderboard ruby-on-rails

4
推荐指数
1
解决办法
4161
查看次数

获取一个数组,其中包含过去两周内创建的帖子数量

我想创建迷你图,说明过去两周内在我的博客上创建的帖子数量.为此,我需要首先生成一个数组,其中包含在相关时段内每天创建的帖子数.

例如,这个数组:

[40, 18, 0, 2, 39, 37, 22, 25, 30, 60, 36, 5, 2, 2]
Run Code Online (Sandbox Code Playgroud)

生成这个迷你图:(我在谷歌图表 API 周围使用Googlecharts包装)

我的问题是如何创建这些数组.这就是我现在正在做的事情:(我正在使用Searchlogic来进行查询,但即使你从未使用它也应该是可以理解的)

  history = []
  14.downto(1) do |days_ago|
    history.push(Post.created_at_after((days_ago + 1).day.ago.beginning_of_day).created_at_before((days_ago - 1).days.ago.beginning_of_day).size)
  end
Run Code Online (Sandbox Code Playgroud)

这种方法既丑陋又缓慢 - 必须有更好的方法!

charts reporting ruby-on-rails google-visualization sparklines

4
推荐指数
1
解决办法
442
查看次数

用于将HTML内容添加到用户剪贴板的Crossbrowser技术

假设Stackoverflow想要轻松"复制链接到这个问题"链接.当你点击这个链接上有什么是你最好的程序员笑话?,它会将此HTML添加到剪贴板:

<a href="https://stackoverflow.com/questions/234075">What is your best programmer joke?</a>
Run Code Online (Sandbox Code Playgroud)

所以当你粘贴到Gmail或其他任何东西时,它看起来像这样:你最好的程序员笑话是什么?

以跨浏览器的方式实现这一目标的最佳方法是什么?

html javascript browser clipboard

4
推荐指数
1
解决办法
436
查看次数

使<div>标记的行为类似于带有CSS的<br>标记

是否有可能使<div>标签表现得像<br>CSS 的股票标签?

有没有其他标签无法通过造型来模仿<div>

html css

4
推荐指数
1
解决办法
4263
查看次数

EXACT Ruby相当于Javascript的escape()函数

考虑字符串: ` ( ?

Javascript的escape()编码如下:

escape("` ( ?")
"%60%20%28%20%3F"
Run Code Online (Sandbox Code Playgroud)

如何在Ruby中实现相同的效果?我没有尝试过:

[Dev]> CGI.escape("` ( ?")
=> "%60+%28+%3F"
[Dev]> URI.encode("` ( ?")
=> "%60%20(%20?"
[Dev]> Addressable::URI.encode("` ( ?")
=> "%60%20(%20?"
Run Code Online (Sandbox Code Playgroud)

javascript ruby escaping

4
推荐指数
1
解决办法
1112
查看次数

发布到Google Plus页面

如何使用Ruby发布到Google+信息页?

通过"页面"我的意思是这个品牌的页面之一(例如,https://plus.google.com/105033245922189902491/posts)

ruby google-plus

4
推荐指数
1
解决办法
3140
查看次数