小编jon*_*nii的帖子

密码保护rails登台环境

我正在努力找出保护我的临时环境的最佳方法.目前我在同一台服务器上运行暂存和生产.

我能想到的两个选择是:

使用rails摘要身份验证

我可以把这样的东西放在application_controller.rb中

# Password protection for staging environment
if RAILS_ENV == 'staging'
  before_filter :authenticate_for_staging
end

def authenticate_for_staging
  success = authenticate_or_request_with_http_digest("Staging") do |username|
    if username == "staging"
      "staging_password"
    end
  end
  unless success
    request_http_digest_authentication("Admin", "Authentication failed")
  end
end
Run Code Online (Sandbox Code Playgroud)

这是从Ryan Daigle的博客中扯下来.我正在运行最新的Rails 2.3,所以我应该摆脱他们对此的安全问题.

使用Web服务器身份验证

我也可以使用.htaccess或apache权限实现这一点,但是它使我的服务器配置稍微复杂一些(我使用Chef,并且需要不同的apache配置用于登台/生产).


现在我有第一个实施和工作,你看到它的问题吗?我错过了一些明显的事吗?提前致谢!

authentication ruby-on-rails staging

10
推荐指数
2
解决办法
4271
查看次数

将Araxis Merge 2010与Visual Studio 2010和TFS 2010集成

我正在努力让Araxis Merge 2010与Visual Studio集成工作,并且我将面临一个砖墙,你应该传递给Merge.exe.

根据他们的文档,它的论点应该是:

/wait /swap /a3 /3 /title1:%6 /title2:%7 /title3:%8 %1 %2 %3 %4

然而,这似乎不起作用,有没有人知道问题可能是什么?

当进行合并时,工具弹出,但是头部说,/ wait和/ swap无法找到,这几乎就像它将标志解释为要比较的文件一样.

araxis visual-studio tfs2010

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

强制关闭C#中的oracle连接

我有一个报告窗口,显示从可能长时间运行的oracle存储过程返回的结果.我的问题是当用户关闭窗口时,与oracle的连接仍然打开,并且可能长时间运行的报告不会被取消.

关闭打开连接的唯一方法是让DBA手动终止它们或让用户退出整个应用程序.

我试过Close从不同的线程调用连接,但这似乎不断阻止.我也试过回滚一个交易,但这也表现出同样的问题.

我担心唯一的解决方案是在不同的进程(或者app域?)中运行查询.

很可能我错过了一些明显的东西,任何帮助都会非常感激.

请阅读

这个问题不是关于在using声明中包装我的连接.它是关于如何强制执行查询的oracle连接关闭.

例:

  • 启动运行查询的线程
  • 将连接对象存放在某处
  • 在连接对象上调用close

    public void Go()
    {
        OracleConnection connection;
        var queryThread = new Thread(
            () =>
                {
                    using (connection = OpenOracleConnection())
                    {
                        // execute stored proc that takes 45 mins
                        // raise an event with the data set we load
                    }
                });
    
        Thread.Sleep(3000); // give it time to be useless
    
        var closeThread = new Thread(
            () =>
                {
                    connection.Close();
                });
        closeThread.Start();
    }
    
    Run Code Online (Sandbox Code Playgroud)

问题是这不会关闭连接,而是调用connection.Close()阻塞等待执行的过程.

c# oracle

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

Rails Restful actions Index Put

我经常遇到我想要一次更新许多记录的情况 - 就像GMail设置许多消息"读取"或"未读"一样.

Rails通过ActiveRecord类的'update'方法鼓励这一点 - Comment.update(keys,values)

示例 - http://snippets.dzone.com/posts/show/7495

这是很棒的功能,但很难映射到一个宁静的路线.从某种意义上说,我希望看到:对集合采取行动.在路线中,我们可能会添加类似的东西

map.resources :comments, :collection => { :update_many => :put }
Run Code Online (Sandbox Code Playgroud)

然后在表格中,你会这样做......

<% form_for @comments do |f| %>
  ...
Run Code Online (Sandbox Code Playgroud)

这在许多层面都不起作用.如果你这样做:: collection => {:update_many =>:put},rails会向索引操作提交一个帖子(CommentsController #index),我希望它转到'update_many'动作.相反,你可以做:collection => {:update_many =>:post}.这至少会在控制器中执行正确的操作.

并且,而不是<%form for @comments ...您必须执行以下操作:

<% form_for :comments, :url => { :controller => :comments, :action => :update_many } do |f| %>
Run Code Online (Sandbox Code Playgroud)

它会以这种方式工作

仍然不完美 - 感觉有点像我们没有做'Rails方式'.它看起来也像:post,and:delete对集合控制器也有意义.

我在这里张贴,看看是否有任何我错过了设置它.关于如何安静地进行收集级别的任何其他想法:post,:put,:delete?

forms rest ruby-on-rails

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

使用鉴别器使用Fluent NHibernate进行多级继承

我处于令人羡慕的状态,不得不与遗留数据库集成,幸运的是出于读取目的,并选择使用NHibernate.到目前为止,一切都很好,但我有一个新的要求让我摸不着头脑.

在今天之前,我在表中有一列可以作为鉴别器,但现在事实证明,在某些情况下,我需要有一个以上的鉴别器列.这可能与NHibernate一起使用吗?

我已经研究过使用可行的公式,但现在我遇到的问题是我需要排除'未知'子类(那些尚未有映射的子类).例如我有这个:

DiscriminateSubClassesOnColumn("")
    .Formula("case ... when ... then ... when .. then ... else 'unknown' end");
Run Code Online (Sandbox Code Playgroud)

我希望能够过滤掉所有"未知"的东西......

编辑:我认为可能的解决方案是使用AlwaysSelectWithValue(),启用它有什么影响?我相信它force与nhibernate映射xml中的相同.

c# nhibernate inheritance fluent-nhibernate fluent-nhibernate-mapping

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

NHibernate:未初始化的代理传递给save()和cascade

我在调用session.Save()时遇到NHibernate.PersistentObjectException,这是由于未初始化的代理传递给save().如果我摆弄我的级联设置,我可以让它消失,但是后来没有保存子对象.

我找到的唯一其他修复方法是将以下内容添加到DefaultSaveEventListener中.

    protected override bool ReassociateIfUninitializedProxy(object obj, global::NHibernate.Engine.ISessionImplementor source)
    {
        if (!NHibernateUtil.IsInitialized(obj))
            NHibernateUtil.Initialize(obj);

        return base.ReassociateIfUninitializedProxy(obj, source);
    } 
Run Code Online (Sandbox Code Playgroud)

这显然不是一个理想的解决方案.

有任何想法吗?

c# nhibernate

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

在.NET应用程序中使用Websphere MQ和JMS

我正在尝试通过使用JMS作为传输协议的Websphere MQ向java服务器发送消息.我很高兴使用IBM提供的库在MQ上删除消息,但服务器拒绝它们.我假设(希望是正确的)这是因为我在MQ消息上缺少各种JMS特定的头/属性.

我已确保了信息的有效载荷是通过检查队列(他们都是地图信息是否有帮助)相同,但不想完全执行JMS的WebSphere MQ协议只是为了得到这个工作.

我想知道是否有人设法让这个工作,如果是这样,你需要在JMS头中指定的最小信息量是多少?有没有其他替代方法可以直接在MQ上执行此操作(我已经看过一些关于使用java互操作的东西,但这是我认为会有点过分的事情).

任何帮助将不胜感激!

.net c# jms ibm-mq

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

这可能是什么:基于关系代数构建的新的Active Record可链接查询语言?

我今天在博客上看到了这个,我终于想到了!Rails会有像HQLLinq这样的东西.嗯,不.我找不到任何关于此的内容.

我真正想知道的是:我能忘记调用哪些表并仅使用对象名称?我最终会忘记连接语法吗?在我开始忘记其他一切(生活目标)之前,我想这样做.

activerecord ruby-on-rails ruby-on-rails-3

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

耙不运行单元测试

我已将我的应用程序从使用升级config.gemGemfile捆绑包,并注意到我的单元测试现已停止运行.这有点奇怪,我不完全确定从哪里开始寻找.

当我运行时,rake test:units --trace我可以看到我的环境正在设置,它列出了它打算执行的文件,但它只是返回.

如果我尝试使用以下内容运行一个单独的文件,它会做同样的事情:rake -I"lib:test" test/unit/foo.rb或者使用autotest.

这一切都很奇怪.好像文件正在加载但实际的单元测试没有运行.

我正在使用shoulda并且fast_context我认为这可能是问题但是如果我使用标准def test_语法包含单元测试它仍然没有运行所以我不认为它是那些.

任何提示或指示将不胜感激.我觉得我编码是盲目的,直到我能让他们再次工作!


所以这就是我现在的位置:

我使用bundler的原因是为了在heroku上安装依赖项,因为我想在github上使用源自git repo的gem.它的长期和短缺是我已经删除了preinitializerfor bundler并重新使用config.gem.为了解决这个事实我不能使用github repo使用config.gem我已经将我自己的副本推出到rubygems.这是正确的举动吗?


这是preinitializer.rb

begin
  require "rubygems"
  require "bundler"
rescue LoadError
  raise "Could not load the bundler gem. Install it with `gem install bundler`."
end

if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.24")
  raise RuntimeError, "Your bundler version is too old for Rails 2.3." +
   "Run `gem install bundler` …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails shoulda

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

依赖于特定的nuget包

我们为其他团队创建了大量内部包,其中许多都依赖于开源包.我想将一个特定版本的nuget包添加到我的nuspec中,这样当最终用户安装我的包时,依赖包也会被安装.

<dependencies>的nuspec部分看起来像这样:

<dependencies>
  <dependency id="MassTransit" version="2.0.0.4" />
  <dependency id="MassTransit.RabbitMQ" version="2.0.0.4" />
</dependencies>
Run Code Online (Sandbox Code Playgroud)

我希望它只能降低MassTransit的2.0.0.4版本,但它会降低2.0.0.5,我的应用程序目前无法使用.我尝试过以下格式,但它们似乎都不起作用:

version="[2.0.0.4, 2.0.0.5)"
version="[2.0.0.4]"
version="2.0.0.5)"
Run Code Online (Sandbox Code Playgroud)

事实上,我似乎无法在文档中获得有关版本范围的任何信息.

我确实有一个想法,那就是masstransit正在使用4位数的版本号,而所有的例子都是3位数的a-la semver.这可能导致我的问题吗?

编辑:

事实证明,构建服务器上的nuget版本已过时,并且不支持我想要使用的范围.升级它修复了一切!

nuget

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