问题列表 - 第20993页

Rails accepted_nested_attributes_for child在验证时没有父集

我在验证时试图在我的子模型中访问我的父模型.我在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)

activerecord ruby-on-rails relationships

10
推荐指数
4
解决办法
6113
查看次数

DDD,处理依赖项

无聊的介绍:

我知道 - 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)

但话又说回来 - 我无法自由地从多个规范中编写规范,这是他们的主要优势之一.

所以 - 问题是,在哪里这样做?商店如何知道条款?

domain-driven-design inversion-of-control

7
推荐指数
1
解决办法
530
查看次数

无GUI应用程序包

我想创建一个没有GUI但可以访问应用程序包的帮助应用程序.我正在查看Xcode命令行项目模板,但这些只是生成可执行文件.如何创建类似命令行工具的东西,它不提供应用程序菜单,但提供对.app中捆绑资源的访问?我是否以错误的方式思考这个问题?

谢谢.

cocoa command-line objective-c

9
推荐指数
2
解决办法
1560
查看次数

在stdin中使用linux“ cut”

我正在尝试将数据传递到“剪切”中,例如剪切掉文本的第一列。这有效

$ 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)

有想法吗?

bash cut pipe

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

ASP.NET MVC路由冲突 - 输入变量的null值

我不知道为什么我的路线有冲突.我在我的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,当我交换周围的路线顺序它工作正常.到目前为止,我的(理所当然有限的)理解是,如果路由中指定的变量名与控制器动作定义中指定的变量名匹配,则它将假定一个不管顺序.显然我错了.交换订单会导致其他控制器操作中断.在这种情况下,处理我的路线的正确方法是什么?

parameters asp.net-mvc null routing global-asax

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

ASP.Net 中的 IIS 管理哪个更好:WMI、ADSI 或托管 API?有什么区别?

我正在使用基于 ASP.Net 的 Web 应用程序配置、操作和控制 IIS 6.0 及更高版本。我正在考虑 WMI、ADSI、托管 API 作为我的选择。

我有一个目标Windows系统WIN2k3或更高版本。选择的语言是 C#,应用程序必须使用 ASP.Net 构建。

这篇关于IIS 7 中的配置选项的文章描述了每种方法,但我对以下几件事有点不确定:

  1. 对于既定目标来说,哪一个更好或更强大?

    • ADSI ( System.DirectoryServices) 或
    • WMI ( Microsoft.Web.Management) 或
    • 托管 API ( Microsoft.Web.Administratoion)?

    如果我在这里做错了什么,请纠正我。

  2. 更高版本的 IIS 可能支持哪种选项或技术?

  3. 哪个选项具有最大的灵活性和可扩展性?

  4. 我可以从哪里找到任何建议/选择的技术的资源?

我不太可能在 II5.1 或更低版本上工作。所以兼容区从IIS 6.0及以上版本开始。应用程序必须使用 ASP.Net 构建,如果不可避免,可以使用非托管代码。

.net asp.net wmi iis-6 adsi

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

Haskell与ContT混淆,callCC,何时

继续寻求理解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行,它也会编译.???

显然,这是原始代码的精炼版本,因此所有元素都有用.对正在发生的事情以及如何解决问题提供解释性帮助.谢谢.

monads continuations haskell

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

如何编写自己的上下文菜单进行复制和粘贴?

我正在使用EditText驱动的小部件编写应用程序.我想创建自己的复制和粘贴菜单.要替换EditText上的android默认菜单,我该怎么办?只是压倒长按?还是有其他方法可以实现?提前致谢.

android android-widget

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

解释WAV数据

我正在尝试编写一个显示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秒的范围内.这里发生了什么?

另外,我怎么知道字节是有符号还是无符号?

非常感谢!

python audio pcm

7
推荐指数
2
解决办法
1万
查看次数

在Windows中是否有办法知道进程是否没有响应?

有没有办法知道进程挂起的时间?这是一个win32的电话吗?

c++ windows winapi

6
推荐指数
2
解决办法
1877
查看次数