小编mhe*_*xon的帖子

如何从ruby中的字符串名称创建类实例?

我有一个类的名称,我想创建该类的实例,以便我可以遍历该类的架构中存在的每个rails属性.

我该怎么做呢?

  1. 我将该名称作为我要检查的类的字符串
  2. 我想我需要实例化一个类实例,以便我可以
  3. 循环遍历它的属性并打印它们.

ruby ruby-on-rails-3

112
推荐指数
4
解决办法
5万
查看次数

为什么rake db:migrate有时会向structure.sql添加尾随空格?

在我们的一些开发人员机器上rake db:migrate添加尾部空格structure.sql非常烦人,因为每次对数据库进行更改时,我们必须首先从文件中删除所有尾随空格.

任何人都知道这可能是什么?空白从哪里来?它与PostgreSQL有关还是别的什么?

postgresql ruby-on-rails

27
推荐指数
3
解决办法
1720
查看次数

获取基目录的更好方法是什么?

我有这个代码加载配置文件并读取所有值,它在运行应用程序时工作正常但当然在团队城市失败,因为appdomain的基本目录是构建脚本(psake)启动的地方.我知道我可以在执行测试之前将目录更改为build dir,但我认为最好不管是什么时候加载配置文件都能正常工作.

XDocument.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, cfgFile));
Run Code Online (Sandbox Code Playgroud)

有没有另一种方法可以让"BaseDirectory"真正起作用?我也尝试了以下相同的结果:

string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
XDocument.Load(Path.Combine(path, cfgFile));
Run Code Online (Sandbox Code Playgroud)

编辑1问题如下.我的解决方案基目录是"C:\ Project",所有编译的文件都复制到"C:\ Project\build".现在在psake构建脚本中,我有以下代码:

task Test -depends PrepareTests {
    try { 
        #$old = pwd
        #cd $build_dir
        &$mspec $mspec_projects --teamcity
        #cd $old
    }
    catch {
        &echo "Error starting test runner"
        Exit 1;
    }      
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我注释掉了目录的更改,这使得BaseDirectory成为构建文件/解决方案的位置而不是构建目录,无论我如何尝试访问它.如果你问我,有点令人困惑.

更新我真的很想知道是否有可能获得程序集的目录,无论启动应用程序域的应用程序位于什么目录中.怎么样?

.net c#

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

EF4 - 自定义ObjectContext和继承问题

我在上一个问题上进一步展开了.假设我从Post继承了BlogEntry和Comment.我现在想要自定义它们.对博客文章的评论不需要标题,但评论需要用户参考,所以我将这两个字段从Post移到评论和博客条目中,如下所示:

public abstract class Post
{
    public virtual int Id { get; set; }
    public virtual string Text { get; set; }
    public virtual DateTime CreatedAt { get; set; }
}

public class BlogEntry : Post
{
    public virtual string Header { get; set; }
    public virtual Blog Blog { get; set; }
    public virtual IEnumerable<Comment> Comments { get; set; }
}

public class Comment : Post
{
    public virtual string Header { get; set; }
    public virtual …
Run Code Online (Sandbox Code Playgroud)

entity-framework

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

Ruby 1.9.3 UndefinedConversionError

直到最近,我的机器上的一切工作正常,但是几天后我一直在Encoding::UndefinedConversionError: U+2713 from UTF-8 to US-ASCII从浏览器向服务器发布内容时出现错误.

首先,由于涉及帖子,我尝试了向数据库添加编码最明显的事情.

development:
  adapter: postgresql
  hostname: localhost
  port: 5432
  username: mikael
  password:
  database: dev
  encoding: utf8
Run Code Online (Sandbox Code Playgroud)

如果我安装ruby-debug19和ruby-debug-base19并运行rails:

rails s --environment=development --debug
Run Code Online (Sandbox Code Playgroud)

现在一切正常.我该如何找出问题的原因,以便我可以解决它?

编辑1:

1.9.3p0 :001 > Encoding.default_internal
 => #<Encoding:UTF-8> 
1.9.3p0 :002 > Encoding.default_external
 => #<Encoding:UTF-8> 
Run Code Online (Sandbox Code Playgroud)

编辑2: 如果我在生产模式下运行一切正常.

ruby ruby-on-rails

8
推荐指数
2
解决办法
4403
查看次数

BinaryWrite与WriteFile

我应该使用什么来将文件写入响应?我认为有两种不同的选择.选项一是将文件读入流中,然后将字节写入浏览器

Response.BinaryWrite(new bytes[5])
Run Code Online (Sandbox Code Playgroud)

下一个选项是直接使用Response.WriteFile从文件系统中写入文件.这两种方法有什么优点/缺点?

编辑:纠正错别字

asp.net

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

如何让全球化与MVC2和jquery一起工作?

我正在尝试asp.net mvc2应用程序中的一些全球化,但无法让它完全运行.我使用图书馆http://github.com/nje/jquery-glob作为工具,根据用户的意愿显示货币和日期等.然而有些事情让我感到困扰.IU无法使用jQuery实际接受全球化的客户端/服务器端验证.无论我尝试什么,如果我回发40.00一切正常,但如果我发布40,00它被接受为0(不是有效的.NET不变十进制值).我试着按照@haacked指南

这是在服务器端处理的global.asax中:

private void SetCulture(string currencySymbol)
{
    AjaxHelper.GlobalizationScriptPath = 
        http://ajax.microsoft.com/ajax/4.0/1/globalization/";

    var culturePref = "sv-SE";
    var request = HttpContext.Current.Request;

    if (request.UserLanguages == null)
        return;

    var lang = request.UserLanguages[0];
    if (lang != null) {
        try {
            Thread.CurrentThread.CurrentCulture =
                CultureInfo.CreateSpecificCulture(lang);
        }
        catch {
            Thread.CurrentThread.CurrentCulture = 
                new CultureInfo(culturePref);
        }
    }

    Thread.CurrentThread.CurrentUICulture = 
        Thread.CurrentThread.CurrentCulture;
}
Run Code Online (Sandbox Code Playgroud)

然后在客户端,我包括以下脚本:

<script src="/Scripts/jquery-1.4.2.js" type="text/javascript"></script>
<script src="/Scripts/jquery.glob.js" type="text/javascript"></script>
<script src="/Scripts/globinfo/jquery.glob.sv-SE.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $.culture = jQuery.cultures['sv-SE'];
        $.preferCulture('sv-SE');
    });
</script>
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script> …
Run Code Online (Sandbox Code Playgroud)

globalization asp.net-mvc-2 jquery-globalization

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

中心屏幕垂直对着元素

如何将浏览器视口置于元素位置的中心?

我可以找到几个实现相反的例子但没有关于屏幕中心元素的内容.

编辑:我说的是将屏幕垂直对中一个元素.

jquery jquery-mobile

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

使用默认值挽救DivisionByZero会在ruby中返回NaN吗?

我希望开始救援将比率设置为零,但是NaN当我挽救错误以提供默认值时,它会设置为令人难以置信的令人沮丧.

  ratio = begin
            0.0 / 0.0
          rescue ZeroDivisionError
            0
          end

  ratio = 0 if ratio.nan?
Run Code Online (Sandbox Code Playgroud)

我想摆脱的代码是ratio = 0 if ratio.nan?为什么需要它?

编辑 新代码如下:

  ratio = bet_money_amount_cents.to_f / total_amount.to_f
  ratio.nan? ? 0 : ratio
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何在git中使用我的更改进行合并?

在git中合并时如何强制"我的更改"?有人把所有bin目录放在git中,现在我有一个可怕的合并冲突:(

现在它说如下:

当你解决了这个问题后,运行"git rebase --continue".如果您希望跳过此补丁,请运行"git rebase --skip".要恢复原始分支并停止重新运行,请运行"git rebase --abort".

我不想合并,我只是想使用我的更改删除所有这些文件.

编辑:大多数文件已成功合并,通过自动合并或因为没有冲突.但是仍然有很多像下面这样的存在.

警告:无法合并二进制文件:src/reports/obj/Debug/TempPE/GroupMailDS.Designer.cs.dll(HEAD与添加的gitignore)

git msysgit

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