我在验证时试图在我的子模型中访问我的父模型.我在has_one上发现了一些关于反属性的东西,但是我的Rails 2.3.5无法识别它,所以它一定没有进入发行版.我不确定它是否正是我所需要的.
我想根据父属性有条件地验证子项.我的父模型已经创建.如果在我对父项进行update_attributes时尚未创建子项,则它无权访问父项.我想知道如何访问这个父母.它应该很简单,像parent.build_child这样设置子模型的parent_id,为什么在为accepts_nested_attributes_for构建子项时没有这样做?
例如:
class Parent < AR
has_one :child
accepts_nested_attributes_for :child
end
class Child < AR
belongs_to :parent
validates_presence_of :name, :if => :some_method
def some_method
return self.parent.some_condition # => undefined method `some_condition' for nil:NilClass
end
end
Run Code Online (Sandbox Code Playgroud)
我的表格是标准的:
<% form_for @parent do |f| %>
<% f.fields_for :child do |c| %>
<%= c.name %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
使用更新方法
def update
@parent = Parent.find(params[:id])
@parent.update_attributes(params[:parent]) # => this is where my child validations take place
end
Run Code Online (Sandbox Code Playgroud) 无聊的介绍:
我知道 - DDD与技术无关.正如我所看到的 - DDD就是要与产品所有者一起创造无处不在的语言,并以如此简单和结构化的方式将其反映到代码中,以至于它不会被误解或丢失.
但是这里有一个悖论 - 为了摆脱领域模型中应用的技术方面,它变得技术性 - 至少从设计角度来看.
上次我试图遵循DDD - 它最终将域对象之外的整个逻辑变成了"魔法"服务和贫血领域模型.
我已经学会了一些新的忍者技巧,并想知道我这次是否可以处理歌利亚.
问题:
class store : aggregateRoot {
products;
addProduct(product){
if (new FreshSpecification.IsSatisfiedBy(product))
products.add(product);
}
}
class product : entity {
productType;
date producedOn;
}
class productTypeValidityTerm : aggregateRoot {
productType;
days;
}
Run Code Online (Sandbox Code Playgroud)
FreshSpecification应该指明产品是否有异味.为了做到这一点 - 它应该检查产品的类型,找到产品新鲜的时间,并与之进行比较producedOn.善良一点.
但这里出现问题 - productTypeValidityTerm并且productType应该由客户管理.他应该能够自由地添加/修改它们.因为我不能productTypeValidityTerm直接从产品遍历,所以我需要以某种方式查询它们productType.
以前 - 我会创建类似的东西ProductService通过构造函数接收必要的存储库,查询术语,执行一些额外的伏都教并返回布尔值(使相关逻辑远离对象本身并分散谁知道在哪里).
我认为做这样的事可能是可以接受的:
addProduct(product, productTypeValidityTermRepository){...}
Run Code Online (Sandbox Code Playgroud)
但话又说回来 - 我无法自由地从多个规范中编写规范,这是他们的主要优势之一.
所以 - 问题是,在哪里这样做?商店如何知道条款?
我想创建一个没有GUI但可以访问应用程序包的帮助应用程序.我正在查看Xcode命令行项目模板,但这些只是生成可执行文件.如何创建类似命令行工具的东西,它不提供应用程序菜单,但提供对.app中捆绑资源的访问?我是否以错误的方式思考这个问题?
谢谢.
我正在尝试将数据传递到“剪切”中,例如剪切掉文本的第一列。这有效
$ cat test.txt | cut -d\ -f2-
Run Code Online (Sandbox Code Playgroud)
从stdin读取也可以:
$ cut -d\ -f2- -
? doc/html/analysis.html
? doc/html/classxytree-members.html
<CTRL+D>
Run Code Online (Sandbox Code Playgroud)
但是,一旦涉及到管道,它就不再接受我<CTRL+D>,并且我也无法发出“文件结束”的信号:
$ cut -d\ -f2- - | xargs echo
Run Code Online (Sandbox Code Playgroud)
更新:这显然是旧版本bash(3.00.15)中的错误。它确实可以在较新的版本中运行(尝试4.0.33和3.2.25)。不过,最好有一些解决方法,因为我无法轻松升级。
背景:我有一个脚本/脚本,它以格式提供了我的压缩输出cvs status(我知道,CVS ...)
? filename
Run Code Online (Sandbox Code Playgroud)
例如,对于尚未提交的文件。我希望能够复制并粘贴该命令的输出部分,并将其用作另一个命令的输入,该命令会将这些文件添加到cvs。说:
$ cut -d\ -f2- | xargs cvs add
<paste lines>
<CTRL-D> # <-- doesn't work
Run Code Online (Sandbox Code Playgroud)
有想法吗?
我不知道为什么我的路线有冲突.我在我的Global.asax文件中有这些:
routes.MapRoute(
"CustomerView", "{controller}/{action}/{username}",
new { controller = "Home", action = "Index", username = "" }
);
routes.MapRoute(
"Default", "{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "0" }
);
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都运行良好,除非我创建一个控制器动作,如下所示:
public ActionResult MyAction(int id)
{
//Do stuff here
return View();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试通过http:// mydomain/MyController/MyAction/5查看它时,我得到:
'/'应用程序中的服务器错误.
参数字典包含'InTouch.Controllers.OrderController'中方法'System.Web.Mvc.ActionResult Track(Int32)'的非可空类型'System.Int32'的参数'id'的空条目.要使参数可选,其类型应为引用类型或Nullable类型.参数名称:参数
告诉我,这个id价值没有得到正确的解读.当然enoguh,当我交换周围的路线顺序它工作正常.到目前为止,我的(理所当然有限的)理解是,如果路由中指定的变量名与控制器动作定义中指定的变量名匹配,则它将假定一个不管顺序.显然我错了.交换订单会导致其他控制器操作中断.在这种情况下,处理我的路线的正确方法是什么?
我正在使用基于 ASP.Net 的 Web 应用程序配置、操作和控制 IIS 6.0 及更高版本。我正在考虑 WMI、ADSI、托管 API 作为我的选择。
我有一个目标Windows系统WIN2k3或更高版本。选择的语言是 C#,应用程序必须使用 ASP.Net 构建。
这篇关于IIS 7 中的配置选项的文章描述了每种方法,但我对以下几件事有点不确定:
对于既定目标来说,哪一个更好或更强大?
System.DirectoryServices) 或Microsoft.Web.Management) 或Microsoft.Web.Administratoion)?如果我在这里做错了什么,请纠正我。
更高版本的 IIS 可能支持哪种选项或技术?
哪个选项具有最大的灵活性和可扩展性?
我可以从哪里找到任何建议/选择的技术的资源?
我不太可能在 II5.1 或更低版本上工作。所以兼容区从IIS 6.0及以上版本开始。应用程序必须使用 ASP.Net 构建,如果不可避免,可以使用非托管代码。
继续寻求理解ContT和朋友.请考虑以下(荒谬但说明性的)代码:
v :: IO (Either String [String])
v = return $ Left "Error message"
doit :: IO (Either String ())
doit = (flip runContT return) $ callCC $ \k -> do
x <- liftIO $ v
x2 <- either (k . Left) return x
when True $ k (Left "Error message 2")
-- k (Left "Error message 3")
return $ Right () -- success
Run Code Online (Sandbox Code Playgroud)
此代码无法编译.但是,如果when用它下面的注释k调用替换它,它就会编译.这是怎么回事?
或者,如果我注释掉x2行,它也会编译.???
显然,这是原始代码的精炼版本,因此所有元素都有用.对正在发生的事情以及如何解决问题提供解释性帮助.谢谢.
我正在使用EditText驱动的小部件编写应用程序.我想创建自己的复制和粘贴菜单.要替换EditText上的android默认菜单,我该怎么办?只是压倒长按?还是有其他方法可以实现?提前致谢.
我正在尝试编写一个显示PCM数据的程序.我一直非常沮丧地试图找到一个具有正确抽象级别的库,但我找到了python wave库并且一直在使用它.但是,我不确定如何解释数据.
wave.getparams函数返回(2个通道,2个字节,44100 Hz,96333帧,无压缩,无压缩).这一切看起来都很愉快,但后来我尝试打印一个帧:'\ xc0\xff\xd0\xff'这是4个字节.我想一个帧可能是2个样本,但模糊不会在那里结束.
96333帧*2个样本/帧*(1/44.1k秒/样本)= 4.3688秒
然而,iTunes报告时间接近2秒,基于文件大小和比特率的计算在2.7秒的范围内.这里发生了什么?
另外,我怎么知道字节是有符号还是无符号?
非常感谢!
.net ×1
activerecord ×1
adsi ×1
android ×1
asp.net ×1
asp.net-mvc ×1
audio ×1
bash ×1
c++ ×1
cocoa ×1
command-line ×1
cut ×1
global-asax ×1
haskell ×1
iis-6 ×1
monads ×1
null ×1
objective-c ×1
parameters ×1
pcm ×1
pipe ×1
python ×1
routing ×1
winapi ×1
windows ×1
wmi ×1