问题列表 - 第24315页

3
推荐指数
1
解决办法
1501
查看次数

如何将包含'include'关联的记录转换为JSON

如果我这样做:

result =  Appointment.find( :all, :include => :staff )
logger.debug { result.inspect }
Run Code Online (Sandbox Code Playgroud)

然后它只打印出约会数据,而不是相关的人员数据.如果我做结果[0] .staff.inpsect那么我当然得到了员工数据.

问题是我想将此作为JSON返回给AJAX,包括人员行.如何强制它包含人员行,还是我必须循环并手动创建一些东西?

ajax activerecord ruby-on-rails

9
推荐指数
1
解决办法
7991
查看次数

如何获取父元素的位置 - XSL

我希望我能在xsl中做到以下几点,但不幸的是,parent/position()无效.

XSL

<xsl:template match="li">
  <bullet>
    <xsl:apply-templates/>
  </bullet>
  <!-- if this is the last bullet AND there are no more "p" tags, output footer -->
  <xsl:if test="count(ancestor::div/*) = parent/position()">
    <footer/>
  </xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

XML

<html>
  <div>
    <p>There is an x number of me</p>
    <p>There is an x number of me</p>
    <p>There is an x number of me</p>
    <ul>
      <li>list item</li>
      <li>list item</li>
      <li>list item</li>
      <li>list item</li>
      <li>list item</li>
    </ul>
  </div>
</html>
Run Code Online (Sandbox Code Playgroud)

任何人有任何想法如何从弄清楚这个问题WITHIN我的模板匹配里?

谢谢!

xml xslt

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

如果我的工厂方法需要不同的参数用于不同的实现,我该怎么办?

我有一个接口,IMessage一个类有几种方法可以创建不同类型的消息,如下所示:

class MessageService
{
    IMessage TypeAMessage(param 1, param 2)
    IMessage TypeBMessage(param 1, param 2, param 3, param 4)
    IMessage TypeCMessage(param 1, param 2, param 3)
    IMessage TypeDMessage(param 1)    
}
Run Code Online (Sandbox Code Playgroud)

我不希望这个类完成创建这些消息的所有工作,所以它只是委托给一个MessageCreatorFactory 产生IMessageCreator取决于给定类型的枚举(基于消息类型TypeA,TypeB,TypeC等的枚举)

interface IMessageCreator
{
     IMessage Create(MessageParams params);
}
Run Code Online (Sandbox Code Playgroud)

所以,我有4个实现IMessageCreator:TypeAMessageCreator,TypeBMessageCreator,TypeCMessageCreator,TypeDMessageCreator

我确定这个,除了因为每个类型需要不同的参数我必须创建一个MessageParams对象,其中包含4个不同参数的4个属性,但每个参数中只使用其中一些IMessageCreator.

有替代方案吗?另一个想法是让一个param数组作为Create方法中的参数,但是这看起来更糟,因为你不知道params是什么.或者在接口中创建几个Create的重载,如果它们不适合那个特定的实现,它们中的一些会抛出异常(即你调用了一个需要更多参数的方法,所以你应该调用其中一个重载.)

这看起来好吗?有更好的解决方案吗?

.net parameters factory-method

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

使用C++迭代器引用无效的内存位置

我是海湾合作委员会的忠实粉丝,但最近我注意到一个模糊的异常现象.使用__gnu_cxx :: __ normal_iterator(即libstdc ++中使用的最常用的迭代器类型,C++ STL),可以引用任意内存位置,甚至可以更改其值而不会导致异常!这是预期的行为吗?如果是这样,是不是一个安全漏洞?

这是一个例子:

#include <iostream>
using namespace std;

int main() {
        basic_string<char> str("Hello world!");
        basic_string<char>::iterator iter = str.end();



        iter += str.capacity() + 99999;
        *iter = 'x';

        cout << "Value: " << *iter << endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ memory gcc

3
推荐指数
1
解决办法
868
查看次数

Ruby JSON.pretty_generate ......非常不合适

我似乎无法JSON.pretty_generate()在Rails中实际生成漂亮的输出.

我正在使用Rails 2.3.5,它似乎自动加载JSON gem.真棒.虽然使用script/console它确实产生JSON:

some_data = {'foo' => 1, 'bar' => 20, 'cow' => [1, 2, 3, 4], 'moo' => {'dog' => 'woof', 'cat' => 'meow'}}
some_data.to_json
=> "{\"cow\":[1,2,3,4],\"moo\":{\"cat\":\"meow\",\"dog\":\"woof\"},\"foo\":1,\"bar\":20}"
Run Code Online (Sandbox Code Playgroud)

但这不会产生漂亮的输出:

JSON.pretty_generate(some_data)
=> "{\"cow\":[1,2,3,4],\"moo\":{\"cat\":\"meow\",\"dog\":\"woof\"},\"foo\":1,\"bar\":20}"
Run Code Online (Sandbox Code Playgroud)

我发现生成它的唯一方法是使用irb和加载"Pure"版本:

require 'rubygems'
require 'json/pure'
some_data = {'foo' => 1, 'bar' => 20, 'cow' => [1, 2, 3, 4], 'moo' => {'dog' => 'woof', 'cat' => 'meow'}}
JSON.pretty_generate(some_data)
=> "{\n  \"cow\": [\n    1,\n    2,\n    3,\n    4\n  ],\n  \"moo\": {\n …
Run Code Online (Sandbox Code Playgroud)

ruby json rubygems ruby-on-rails

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

如何强制ADO.Net仅在reader TableSchema中使用System.String DataType

我正在使用OleDbConnection来查询Excel 2007电子表格.我想强制OleDbDataReader只使用字符串作为列数据类型.

系统正在查看前8行数据并将数据类型推断为Double.问题是在第9行我在该列中有一个字符串,OleDbDataReader返回一个Null值,因为它无法转换为Double.

我使用过这些连接字符串:

Provider = Microsoft.ACE.OLEDB.12.0; Data Source ="ExcelFile.xlsx"; Persist Security Info = False; Extended Properties ="Excel 12.0; IMEX = 1; HDR = No"

Provider = Microsoft.Jet.OLEDB.4.0; Data Source ="ExcelFile.xlsx"; Persist Security Info = False; Extended Properties ="Excel 8.0; HDR = No; IMEX = 1"

看看reader.GetSchemaTable().Rows [7] .ItemArray [5],它的dataType是Double.

此架构中的第7行与我遇到问题的Excel中的特定列相关联.ItemArray [5]是它的DataType列

是否可以为读者创建自定义TableSchema,以便在访问ExcelFiles时,我可以将所有单元格视为文本而不是让系统尝试推断数据类型?


我在此页面上找到了一些很好的信息:使用ADO.NET阅读Excel电子表格的提示

关于ADO.NET接口的主要特点是如何处理数据类型.(您会注意到我在阅读电子表格时一直在仔细避免返回哪些数据类型的问题.)您准备好了吗?ADO.NET扫描前8行数据,并基于此猜测每列的数据类型.然后它会尝试将该列中的所有数据强制转换为该数据类型,并在强制失败时返回NULL!

谢谢,
基思


这是我的代码的简化版本:

using (OleDbConnection connection = new OleDbConnection(BuildConnectionString(dataMapper).ToString()))
{
    connection.Open();
    using (OleDbCommand cmd = new OleDbCommand())
    {
        cmd.Connection = connection;
        cmd.CommandText = SELECT …
Run Code Online (Sandbox Code Playgroud)

c# excel types oledbconnection

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

为什么我的程序在内存不足时会偶尔发生段错误而不是抛出std :: bad_alloc?

我有一个程序实现了几个启发式搜索算法和几个域,旨在通过实验评估各种算法.该程序是用C++编写的,使用GNU工具链构建,并在64位Ubuntu系统上运行.当我运行我的实验时,我使用bash的ulimit命令来限制进程可以使用的虚拟内存量,以便我的测试系统不会开始交换.

某些算法/测试实例组合达到了我定义的内存限制.大多数情况下,程序抛出一个std :: bad_alloc异常,由异常处理程序打印,此时程序终止.偶尔,程序只是段错误而不是这种情况发生.

为什么我的程序在内存不足时偶尔会出现段错误,而不是报告未处理的std :: bad_alloc并终止?

c++ segmentation-fault bad-alloc

11
推荐指数
1
解决办法
3735
查看次数

DataMapper:创建新记录或更新现有记录

DataMapper是否提供了一种在不存在或更新现有记录时创建新记录的便捷方法?我在API文档中找不到任何内容.

这就是我目前看来并不优雅的东西:

foo = Foo.get(id)
if foo.nil?
  foo = Foo.create(#attributes...)
else
  foo.update(#attributes...)
end
foo.save
Run Code Online (Sandbox Code Playgroud)

ruby datamapper

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

包括一个字符串作为头文件中函数的参数?C++

我有这个头文件,zeeheader.h,我在其中写了一些类,我在将字符串作为参数给其中一个函数时遇到了问题:

class DeliTest
{

public:

    void DeliCheck(Stack*,string);
    void ComCheck (unsigned,string);
    bool EofCheck (unsigned,string);
};
Run Code Online (Sandbox Code Playgroud)

当我在cpp文件中实现它时,我添加了#include,它似乎正在工作,例如:因为我正在编写"数据".我得到了intellisense出现的"length()",所以我认为它有效,但事实并非如此.我得到的错误如下:

语法错误:'DeliTest'中找不到标识符'string'重载的成员函数

这是cpp文件中的一个函数:

bool DeliTest::EofCheck(unsigned i, string data)
{

    if (i == data.length()-1)
        return 1;
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我应该在头文件中添加一些内容吗?

c++

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