小编Tim*_*han的帖子

Ruby宝石没有安装,在获取宝石时挂起

我最近使用hivelogic上的说明清除了所有ruby安装并安装了表单源

我已经能够安装一些宝石,但大多数时候,"sudo gem install rails"挂起.我添加了-V标志,它似乎挂起,我没有得到任何错误.而这个过程无法杀死.我只能重启才能杀死进程.

我的红宝石信息:

[tim@ ~]# ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0]
[tim@ ~]# gem -v
1.3.6
[tim@ ~]# gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.6
  - RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-10
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.8
     - /Users/tim/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark …
Run Code Online (Sandbox Code Playgroud)

ruby macos rubygems ruby-on-rails

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

Ruby on Rails与存储库模式?

在使用ASP.Net MVC之后,我想到了Rails.我之前和Rails一起工作过,但是有点生疏了.ASP.Net MVC教程建议使用存储库模式隐藏数据层实现.这允许简单的依赖注入进行单元测试,以及控制器与模型实现的良好解耦.

我记得Rails的控制器直接使用Active Record对象,并使用可以轻松设置和拆卸的测试数据库进行单元测试.这解决了换掉单元测试的需要,但是在控制器中暴露出如此多的ActiveRecord代码仍然是一个坏主意.

所以我的问题是,这里最新的最佳做法是什么?真实(非模拟)数据库是否仍用于单元测试?Rails开发人员直接调用ActiveRecord还是抽象?

ruby unit-testing ruby-on-rails separation-of-concerns repository-pattern

13
推荐指数
2
解决办法
6501
查看次数

MVC Web框架中不相关视图的优雅解决方案是什么?

我在Rails和ASP.Net MVC中遇到了以下问题.通常页面上有多个功能小部件,但是应该有一个控制器动作呈现页面.让我说明一下:

假设我有一个普通的电子商务网站,菜单由类别组成,而页面则显示一组产品.

对于产品,假设我在控制器上有一个动作,看起来像:

def product_list
     @products = Products.find_by_category(:name => 'lawnmowers')
end
Run Code Online (Sandbox Code Playgroud)

我有一个类似的布局

<div id="menu"><%= render :partial => 'menu' %></div>
<div id="content"><%= yield %></div>
Run Code Online (Sandbox Code Playgroud)

产品有一个观点......

<%= render :partial => 'product', :collection => @products %>
Run Code Online (Sandbox Code Playgroud)

(注意我已经忽略了产品视图无关紧要)

菜单有部分......

<% Category.each {|c| %>
   <%= render :partial => 'menu_node', :locals => { :category => c } %>
<% } %>
Run Code Online (Sandbox Code Playgroud)

我遇到问题的一行是视图中的"Category.each.do".我在视图中获取数据,而不是使用在控制器中设置和绑定的变量.它可以很容易地成为一个产生菜单的更复杂的方法调用.

我考虑过的解决方案是:

- 一个知道如何获取各种数据的视图模型基类.但是,对于网站的每个概念性"部分",您最终可能会得到其中一个.
- 填充在每个方法顶部的局部变量(违反DRY) - 同样的事情,但是在before_filter调用中

这些对我来说都不是很优雅.我不禁看看这个问题,并认为每个视图(不是屏幕)的MVP演示者是一个更优雅的解决方案.

ASP.Net MVC具有渲染操作(与rails render:action不同),它确实解决了这个问题,但我不确定我对该解决方案的看法.

思考?解决方案建议

补充说明: 到目前为止提供的答案都是很好的建议.它们适用于我给出的示例,其中每个布局中都可能存在菜单,并且显然是产品数据的次要选项.

但是,如果显然没有二等公民呢?门户类型站点通常具有多个不相关的小部件,其中每个小部件都很重要.

例如,如果此页面显示天气趋势,温度,湿度和降水的小部件(每个都是不同的模型和视图类型),该怎么办?

model-view-controller asp.net-mvc design-patterns ruby-on-rails

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

Visual Studio测试中的跟踪(从NUnit迁移)

在NUnit中,我习惯在测试中编写Trace语句,并将它们显示在NUnit gui的trace选项卡中.

在一个新项目中,我正在转向Visual Studio Professional Addition中的内置单元测试,我相信它是mstest.exe的接口.

测试代码:

<TestMethod()>
Public Sub TestPagesInheritFromBasePage()
    Dim webUI As Assembly = Assembly.GetAssembly(GetType(WebUI.BasePage))
    Dim badPages As New List(Of String)
    For Each t As Type In webUI.GetTypes()
        Debug.Write(t.Name + ", ")
        Trace.Write(t.Name + ", ")
        If t.BaseType Is GetType(System.Web.UI.Page) Then badPages.Add(t.Name)
    Next
    Debug.Flush()
    Trace.Flush()
    If badPages.Count > 0 Then
        Assert.Fail("{0}: do not inheriting from BasePage", String.Join(", ", badPages.ToArray()))
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我遇到了失败,所以我知道Debug.Write和Trace.Write行正在执行.

我已经阅读了MSDN文档来编写这些测试,如果在命令行执行,我可以通过以下方式查看跟踪输出:

mstest.exe /testcontainer:mydll.dll /detail:debugtrace
Run Code Online (Sandbox Code Playgroud)

但是,在visual studio中直接执行测试时,我找不到跟踪输出.是否有另一种在单元测试期间输出信息的首选方法,或者我是否缺少在visual studio中查看跟踪信息的选项?

答案: 下面的两个答案(Console.Write和Debug.Write)都有效,结果在测试结果详细信息中(底部的TestResult窗格,右键单击测试结果并转到TestResultDetails).另外,我在项目属性中设置了Debug和Trace常量.

trace nunit unit-testing mstest visual-studio

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

如何在Java中创建Fibonacci序列

我真的很厌倦数学.我的意思是,我真的很喜欢数学.我正在尝试为我将使用的算法制作一个简单的斐波那契序列类.我见过python示例,看起来像这样:

a = 0
b = 1
while b < 10:
    print b
    a, b = b, b+a
Run Code Online (Sandbox Code Playgroud)

问题是我无法用任何其他语言实现这项工作.我想让它在Java中工作,因为我几乎可以将它翻译成我在那里使用的其他语言.这是一般的想法:

    public class FibonacciAlgorithm {

    private Integer a = 0;

    private Integer b = 1;

    public FibonacciAlgorithm() {

    }

    public Integer increment() {
        a = b;
        b = a + b;
        return value;
    }

    public Integer getValue() {
        return b;
    }
}
Run Code Online (Sandbox Code Playgroud)

我最终得到的只是倍增,我可以用乘法来做:(任何人都可以帮助我吗?数学让我感到高兴.

python java

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

jQueryMobile ListView文本换行

在jQueryMobile中,listviews会截断文本.有很多的文章和帖子这样一个是说加空格:在CSS正常.

但是,这在jQueryMobile 1.4中对我不起作用.你可以在这里看到.要测试您需要缩小浏览器窗口大小.有任何想法吗?

css jquery-mobile jquery-mobile-listview

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

XSLT适用于IE,而不适用于Chrome或Firefox

给出一个正常的nhibernate配置文件:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://localhost/xmlStylesheets/nhibernate.xsl"?>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
    <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
    <property name="connection.connection_string">Data Source=MyDB;User ID=MyUser;Connection Lifetime=0;Enlist=false;Pooling=true;Max Pool Size=100;Min Pool Size=0;Incr Pool Size=5;Decr Pool Size=1;Statement Cache Size=100;</property>
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
    <property name="use_outer_join">true</property>
    <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
    <property name="show_sql">true</property>
  </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

我为它创建了一个xslt转换.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:h="urn:nhibernate-configuration-2.2">
  <xsl:template match="h:hibernate-configuration/h:session-factory">
    <html>
      <head>
        <title>Projects</title>
        <link rel="Stylesheet" type="text/css" 
              href="http://localhost/xmlStylesheets/xml.css" />
      </head>
      <body>
        <div id="container">
          <div class="content" id="settings">
            <xsl:value-of select="count(h:property)" /> properties
            <table class="grid">
              <thead>
                <tr>
                  <th>Property</th>
                  <th>Value</th> …
Run Code Online (Sandbox Code Playgroud)

xml xslt firefox google-chrome xml-namespaces

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