我有以下型号:
class Person < ActiveRecord::Base
has_many :accounts, :through => :account_holders
has_many :account_holders
end
class AccountHolder < ActiveRecord::Base
belongs_to :account
belongs_to :people
end
class Account < ActiveRecord::Base
has_many :people, :through => :account_holders
has_many :account_holders
end
Run Code Online (Sandbox Code Playgroud)
但是,在使用这种关系时我遇到了问题.Account.first.account_holders工作正常,但Account.first.people返回:
NameError: uninitialized constant Account::People
from /Users/neil/workspace/xx/vendor/rails/activesupport/lib/active_support/dependencies.rb:105:in `const_missing'
from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/base.rb:2204:in `compute_type'
from /Users/neil/workspace/xx/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/base.rb:2200:in `compute_type'
from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/reflection.rb:156:in `send'
from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/reflection.rb:156:in `klass'
from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb:73:in `find_target'
from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:353:in `load_target'
from /Users/neil/workspace/xx/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:139:in `inspect'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
具体来说,我在谈论避免这种类型的代码:
<input type='text' id='title_33' class='title'
onfocus='updateCharsLeft(33);'
onkeypress='updateCharsLeft(33);' />
Run Code Online (Sandbox Code Playgroud)
在这里,我想分别放置onfocus和onkeypress事件句柄,即在.js文件中.像这样:
$(document).ready(function()
{
$(".title").focus(updateCharsLeft);
$(".title").keypress(updateCharsLeft);
);
Run Code Online (Sandbox Code Playgroud)
但是问题是文本框的ID需要传递给函数updateCharsLeft().如果必须从该函数中的文本框的ID中提取出id,那么在HTML代码中放入事件处理程序实际上会更加清晰.
思考?
是否有任何函数可用于将字符串中的所有换行符转换为空格?
例如:
$a = "dflsdgjsdg
dsfsd
gf
sgd
g
sdg
sdf
gsd";
Run Code Online (Sandbox Code Playgroud)
我要找的结果是:
$a = "dflsdgjsdg dsfsd gf sgd g sdg sdf gsd"
Run Code Online (Sandbox Code Playgroud) 使用obj.innerHTML = "abcxyz <abcxyz@ttt.com>"获取输出:abcxyz由于尖括号(<>),其余部分被忽略.那么如何实现同样的目标.
谢谢你的推动
我找到了一些关于这个问题的线索.大多数人似乎倾向于在他们的c#代码中使用int,即使一个字节或一个smallint处理数据,除非它是一个移动应用程序.我不明白为什么.将C#数据类型定义为数据存储解决方案中的相同数据类型是否更有意义?
我的前提:如果我使用的是类型化的数据集,Linq2SQL类,POCO,无论如何我都会遇到编译器数据类型转换问题,如果我不保持我的数据类型在我的层之间保持同步.我真的不喜欢一直在做System.Convert,因为在c#代码中使用int更容易.我总是使用任何最小的数据类型来处理数据库和代码中的数据,以保持我的数据库接口干净.所以我敢打赌,75%的C#代码使用byte或short而不是int,因为这就是数据库中的内容.
可能性:这是否意味着大多数只为代码中的所有东西使用int的人也使用int数据类型作为他们的sql存储数据类型,并且可能不太关心他们的数据库的整体大小,或者他们是否在适当的情况下在代码中执行system.convert?
为什么我关心:我一直在努力工作,我只想熟悉最佳实践和标准编码惯例.
我从 Business Intelligence Development Studio (Visual Studio 2008) 收到了一个相当令人沮丧的错误。我有一个包含 4 个子报告的报告,这些子报告可能包含也可能不包含数据,因此它们的 HIDDEN 属性由表达式控制:
=IIF(ReportItems![SOME TEXT BOX].Value = 0, TRUE, FALSE)
Run Code Online (Sandbox Code Playgroud)
[SOME TEXT BOX] 的内容是存储过程为其各自子报表返回的行数,因此如果值为 0,则包含子报表的矩形设置为 HIDDEN = TRUE。
这适用于 4 个子报告中的 3 个,但由于某种原因,其中一个导致此错误:
[RECTANGLE CONTAINING SUB-REPORT] 的隐藏表达式包含错误:
请求类型为“System.Security.Permissions.SecurityPermission、mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089”的权限失败
一些谷歌搜索显示,这(显然)与访问权限有关,但大多数人似乎遇到了与 MS Sharepoint 相关的错误,并且解决方案似乎并不适用。
非常感激任何的帮助!
布赖恩
编辑:这只发生在 'ReportItems![SOME TEXT BOX].Value = 0' 返回 TRUE,即没有行时。
我想对一个MatchCollection对象运行一个LINQ查询,但发现这是不可能的,因为它没有实现ICollection<T>,只是ICollection.
在代码简洁性以及性能和内存使用方面,将LINQ与非泛型集合一起使用的最佳选择是什么?
(如果有兴趣,这里是非LINQuified代码:)
MatchCollection fieldValues = Regex.Matches(fieldValue, @"(?<id>\d+);#(?<text>[^;|^$]+)");
foreach (Match m in fieldValues)
{
if (m.Groups["text"].Value.Equals(someString))
{
// Do stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我有三个布尔值A,B和C.我需要编写一个IF语句,当且仅当这些值中不超过一个为True时才会执行.换句话说,这是真值表:
A | B | C | Result
---+---+---+--------
0 | 0 | 0 | 1
0 | 0 | 1 | 1
0 | 1 | 0 | 1
0 | 1 | 1 | 0
1 | 0 | 0 | 1
1 | 0 | 1 | 0
1 | 1 | 0 | 0
1 | 1 | 1 | 0
Run Code Online (Sandbox Code Playgroud)
写这个的最好方法是什么?我知道我可以列举所有可能性,但这似乎......太冗长了.:P
补充:刚才有一个想法:
!(A && B)&&!(B && C)&&!(A && C)
这将检查没有设置两个值.关于总和的建议也是可以的.更可读也许......
(A≥1:0)+(B≤1:0)+(C≥1:0)<= 1
PS这是用于生产代码,所以我的代码可读性要高于性能.
补充2: …
c# ×2
javascript ×2
.net ×1
activerecord ×1
android ×1
asp.net ×1
generics ×1
icollection ×1
jquery ×1
linq ×1
many-to-many ×1
perl ×1
permissions ×1
sql-server ×1
string ×1
types ×1
web-services ×1
webserver ×1