小编Yar*_*rin的帖子

ActiveRecord包含的意外行为

我正在使用AR includes方法在对象UserBuilding之间执行LEFT OUTER JOIN ,其中User可能有也可能没有Building关联:

users = User.includes(:building).references(:buildings)
Run Code Online (Sandbox Code Playgroud)

因为我正在使用references,所以任何关联的Building对象都会被急切加载.

我的期望是我能够遍历用户列表,并检查用户是否有与之关联的建筑物而不触发其他查询,但实际上每当我尝试访问用户的建筑属性时我都会看到没有一个,AR进行另一个SQL调用来尝试检索该构建(虽然在后续尝试中它将返回nil).

这些查询显然是多余的,因为在初始连接期间会加载关联,并且似乎打败了包含/引用的热切加载的整个目的,因为现在我正在查看N次查询的数量等于数量空关联.

users.each do | user |

  # This will trigger a new query when building is not present: 
  # SELECT  "buildings".* FROM "buildings" WHERE "buildings"."address" = $1 LIMIT 1  [["address", "123 my street"]]
  if user.building
    puts 'User has building'
  else
    puts 'User has no building' 
  end

end
Run Code Online (Sandbox Code Playgroud)

用户类:

class User < ActiveRecord::Base
  belongs_to :building, foreign_key: 'residence_id'
end
Run Code Online (Sandbox Code Playgroud)

有没有办法检查用户的建立关联的存在而不触发额外的查询?


ON RAILS 4.2.0/POSTGRES


更新:

谢谢@BoraMa将这个 …

ruby sql ruby-on-rails ruby-on-rails-4 rails-activerecord

6
推荐指数
1
解决办法
178
查看次数

以编程方式更改输入时,角度模型不会更新

我有一个绑定到模型值的文本输入,但我无法弄清楚如何以编程方式更改输入值并将更改传播到模型.

我理解,因为我正在更新我需要显式调用的角度范围外部的值$scope.$apply(),但它不起作用.

HTML:

<input id="test_input" ng-model="test_value">
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.test_value = 'abc'; // starting value
Run Code Online (Sandbox Code Playgroud)

安慰:

$('#test_input').val('xyz');
$('#test_input').scope().$apply();
$('#test_input').scope().test_value;
-> 'abc';
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

6
推荐指数
1
解决办法
3729
查看次数

我的 Web 服务器的版本控制

我正在构建一个基于 Web2Py 的 Web 应用程序,并在远程 EC2 开发服务器上进行大部分开发。我想对整个系统进行版本控制,包括所有 python 模块、网页和 Apache 配置文件。这些文件显然分散在我的 Linux 机器上,但我希望能够使用单个命令签出/提交。我是命令行上的 SVN 新手 - 有没有办法使用某种带有符号链接的虚拟目录来执行此操作?

欢迎任何想法。谢谢。

linux svn web2py

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

在Joomla组件开发中导入PHP代码

无法弄清楚如何将php文件导入我的joomla组件 - 所有这些都失败了:

  • require_once( 'code.php');
  • require_once(dirname(FILE).DS.'code.php');
  • require_once(JPATH_COMPONENT.DS.'code.php');

有任何想法吗?谢谢

php joomla require-once custom-component

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

网页必须以".php"结尾才能运行php代码吗?

网页是否需要以".php"结尾才能运行php代码?有没有办法以".html"结尾的文件可以运行PHP代码?

html php

5
推荐指数
2
解决办法
1998
查看次数

github UI如何在没有回发的情况下导航目录?

github.com上浏览我的repo目录时,我注意到它使用很酷的javascript效果在目录视图之间切换而不会导致回发,但是url改变了很好且RESTful:http://../tree/master/dir7- > http://../tree/master/dir7/dir4.

每当我必须使用javascript跟踪导航时,我总是不得不求助于地址栏中的哈希参数. http://...page#new-javascript-location

他们是如何做到的呢?

html javascript navigation url query-string

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

我可以设置/修改/删除可滚动div的滚动条

是否有样式,修改或删除可滚动的html div的滚动条?

html css scrollbar

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

元关键词 - 使用单词或短语?

我知道元关键字的相关性很少甚至没有,但我的客户想要它们.而且,他们给了我一个关键短语列表.我是否应该插入用逗号分隔的关键短语,即使它们重复某些关键词,或者我应该只包括每个关键词一次,而不是完全使用短语?

<meta name="keywords" content="big red cars, small blue cars, medium yellow cars">
Run Code Online (Sandbox Code Playgroud)

要么

<meta name="keywords" content="cars, big, small, red, yellow, blue">
Run Code Online (Sandbox Code Playgroud)

html keyword meta-tags

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

Firefox中的window.location.hash问题

请考虑以下代码:

hashString = window.location.hash.substring(1);
alert('Hash String = '+hashString);
Run Code Online (Sandbox Code Playgroud)

使用以下哈希运行时:

#车=镇%20%26%20Country

ChromeSafari的结果将是:

车=镇%20%26%20Country

但在Firefox(Mac和PC)中将是:

汽车=城镇和乡村

因为我使用相同的代码来解析查询和哈希参数:

function parseParams(paramString) {

        var params = {};
            var e,
            a = /\+/g,  // Regex for replacing addition symbol with a space
            r = /([^&;=]+)=?([^&;]*)/g,
            d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
        q = paramString;

        while (e = r.exec(q))
           params[d(e[1])] = d(e[2]);

        return params;

    }
Run Code Online (Sandbox Code Playgroud)

Firefox的特质在这里打破了它:汽车座位结束了"城镇",没有国家.

有没有一种安全的方法来解析跨浏览器的哈希参数,或修复Firefox如何读取它们?


注意:此问题仅限于Firefox解析HASH参数.使用查询字符串运行相同的测试时:

queryString = window.location.search.substring(1);
alert('Query String = '+queryString);
Run Code Online (Sandbox Code Playgroud)

所有浏览器都会显示:

车=镇%20%26%20Country

javascript hash firefox url-parsing url-parameters

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

防止域名尾随斜线

我希望我的网站显示为www.mysite.com,而不是www.mysite.com/

Apache 是否默认在域名后添加尾部斜杠,还是浏览器附加它?如果我想使用 .htaccess 阻止这种情况,那么 url 重写规则是什么?

apache .htaccess url-rewriting domain-name

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