我刚刚转到Ubuntu 8.10作为我的开发盒; 这是我第一次认真进军Linux作为日常使用的操作系统,而且我很难让Rails继续运行.我已经遵循了一些似乎工作正常的教程,但是当我尝试使用gem install或gem update时,我得到一个如下错误:
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- zlib (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:1
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:5
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:167:in `load_and_instantiate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:88:in `[]'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:144:in `find_command'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:131:in `process_args'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:102:in `run'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:58:in `run'
from /usr/local/bin/gem:21
Run Code Online (Sandbox Code Playgroud)
我(在教程中推荐)安装了zlib,zlib1g和zlib1g-dev.我甚至找到了一些关于这个特殊问题的教程(但是除了我的以外的所有口味),但它们没有帮助.
我在Ubuntu 8.10,ruby版本1.8.8dev gem version 1.3.2
我尝试过各自单独重新安装红宝石和宝石,但无济于事.
在尝试遵循Android设计指南时,我遇到了一个小小的困境.
我希望有一个项目列表,我可以长按几个(多选),然后对它们执行批量操作.
设计指南建议使用Contextual Action Bar,这听起来就像我想到的那样.问题是,我正在努力保持与API 7的兼容性(由于我的手机目前是2.3.3).
我正在使用ActionBarSherlock获取其他操作栏的东西,但我似乎无法弄清楚如何启动它以启动上下文操作栏,也没有弄清楚如何将任意按钮添加到ABS中的ActionBar.我看到你可以做标签,所以也许这就是答案,但是因为我试图允许多选,我不想拥有正常的模态上下文菜单.
非常简单的问题.我有一个具有属性的模型System.Uri
. Uri
s没有默认的无参数构造函数,也没有ID字段.有没有办法覆盖我的模型生成,以自定义方式将其存储在数据库中(例如,作为一个string
)?在NHibernate中,我之前通过实现完成了这个IUserType
,但我在CodeFirst中找不到类似的机制.
显然,我可以创建一个使用Uri
底层的自定义类型并公开常规的可映射属性和构造函数,我只是好奇是否有任何方法来映射这个系统类型,这样我就不必像这样制作包装器了.
我有一个相对较大的节点集,我想找到所有具有匹配属性值的节点对,但我不知道或事先关心属性值是什么.这基本上是尝试查找重复节点,但我可以将重复的定义限制为具有相同属性值的两个或更多节点.
任何想法如何进行?在neo4j文档中没有找到任何起点.我正在使用1.8.2社区版.
编辑
很抱歉在最初的问题中不清楚,但我在谈论通过Cypher这样做.
只是想让小组了解如何处理实体的配置细节.
我正在考虑的是高级别设置,可能是管理员更改的.你可能最终存储在应用程序或web.config中的那种东西,但是从DDD角度来看应该明确地设置在对象的某个地方.
为了论证,我们以一个基于Web的CMS或博客应用为例.
给定的博客条目实体具有任意数量的实例设置,如作者,内容等.
但是,您也可能希望设置(例如)默认描述或关键字,如果作者没有更改网站中的所有条目,则应该从这些条目开始.当然,你可以在课堂上制作这些常量,但网站所有者无法更改默认值.
所以我的想法如下:
1)使用类级别(静态)属性来表示这些设置,然后在应用程序启动时设置它们,从数据库或web.config设置它们.
要么
2)使用单独的实体来保存设置,可能是字典,要么直接使用它,要么让它成为Entry类的成员
最容易/最灵活的是什么让你大家都感到震惊?我对第一个问题的关注是,它不会让我觉得非常可插拔(如果我最终想要添加更多功能),因为更改实体的类方法会让我改变应用程序本身(这感觉就像是OCP违规).然而,第二个感觉它更重,特别是如果我必须从字典中转换或解析值.
设计一个RESTful API,它有一些依赖于上游服务的元素(例如数据库,另一个Web服务等).如果应用程序本身处于有效状态,并且仍然可以使用,但无法访问其中一个上游服务(由于网络问题或其他原因),是否有比使用更合适的状态代码HTTP 500?
HTTP 500对我来说不合适,因为问题不是(如RFC定义的)"内部服务器错误".服务器很好,仍然能够处理其他请求而不会崩溃,它只是降级功能,直到其他服务重新联机.
我考虑过502 - Bad Gateway
因为应用程序实际上充当了这个其他服务的代理(有点),或者503 - Service Unavailable
因为它是一个实际上不可用的服务,但是他们感觉不完全正确.特别是最后一个,因为它具有由于加载或处理请求太多而无法使用的含义.
我一直在努力寻找这个问题,到目前为止一直在悲惨地失败.我最近的尝试是从这个堆栈代码中解除的: 通过带有C#的Gmail SMTP服务器发送电子邮件,但我已经尝试了我可以在堆栈和其他地方找到的所有语法.我的代码目前是:
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("me@gmail.com", "mypass"),
EnableSsl = true
};
client.Send("me@gmail.com","me@gmail.com","Test", "test message");
Run Code Online (Sandbox Code Playgroud)
运行该代码给我一个立即异常"发送邮件失败",其中包含"无法连接到远程服务器"的内容.
如果我将端口更改为465(如gmail文档建议的那样),我每次都会超时.
我已经读过465不是一个好用的端口,所以我想知道这笔交易是什么让我无法连接.我的用户和通行证是对的.我已经读过我必须在我的Gmail帐户上设置POP服务,所以我这样做了.徒劳无功.
我原本试图让我的品牌GMail帐户工作,但遇到同样的问题,我认为我/我的常规Gmail帐户将更容易...到目前为止,情况并非如此.
我注意到MapRoute扩展包含一个重载,它接受一个名为'namespaces'的string []参数.我读了谷歌对我的看法,据说这是为了帮助框架在其他地方看不到的地方找到控制器.
我做了一些尖峰,并尝试将控制器放在奇怪的位置.我把一个放在Scripts文件夹中; 我甚至在一个单独的程序集中构建了一个具有单独的根命名空间
如果不在命名空间参数中放置任何内容,一切都运行正常.如果我只在命名空间参数中放置一个命名空间,它仍然可以找到我的所有控制器.我想也许它会使用该数组来消除类似命名的控制器之间的歧义,但这也没有发生.MyProj.Controllers中的HomeController和SomeOtherName.Stuff中的HomeController仍会发生冲突.
所以我的问题是,该参数是否已被弃用?或者它仍以某种方式用于我尚未辨别的方式?
那么,新手NHibernate用户; 试图将我的大脑包裹起来.
我正在考虑如何处理部署,以及稍后向Web应用程序注入附加组件(可能需要自己的持久性类).
我认为SchemaExport
用于部署可以很好地工作,但我想知道是否有一种方法也让NHibernate以一种基于代码的通用方式告诉我模式导出已经完成或不完成.基本上,我想做像这个伪代码中的东西:
if(!_cfg.HasSchemaForType(typeof(MyType))
ExportSchema(typeof(MyType));
else
UpdateSchema(typeof(MyType));
Run Code Online (Sandbox Code Playgroud)
这两个函数将在内部使用SchemaExport
或SchemaUpdate
分别使用.
编辑:伙计们,我赞赏到目前为止的答案,但他们错过了一点.我正在尝试设置的是一种方法,允许应用程序添加和删除可能需要更改数据库的附加组件.我不是在谈论版本化我自己的代码之类的东西(至少不是它的主要功能).所以问题不在于我何时部署应用程序,而是关于何时添加或删除插件.是否已经部署过theis插件(因此伪代码类型检查)?如果是,请运行更新.如果没有,请运行导出.合理?
对如何有效地验证CodeFirst模型的给定属性是唯一的感到好奇.典型示例是成员的用户名或显示名称.
传统上,我可以通过在数据库中设置唯一约束,或者通过在尝试插入操作期间执行查找来执行此操作.我知道如何在生成后在DB本身中手动添加这些东西,只是想知道是否有办法将其作为框架提供的模式映射的一部分.
更新 我发现我可以覆盖DbContext上的ValidateEntity方法,这在概念上允许我进行查找然后使对象无效以防止保存.我仍然很想知道是否有一种方法可以在数据库中应用唯一约束或类似约束
c# ×2
.net ×1
android ×1
asp.net ×1
asp.net-mvc ×1
code-first ×1
cypher ×1
gmail ×1
http ×1
neo4j ×1
nhibernate ×1
rest ×1
routing ×1
ruby ×1
rubygems ×1
schemaexport ×1
ubuntu-8.10 ×1
zlib ×1