我在rails 3应用程序上使用了carrierwave和mongoid,并且遇到了after_save回调问题.考虑以下
class Video
include Mongoid::Document
field :name
mount_uploader :file, VideoUploader
after_create :enqueue_for_encoding
protected
def enqueue_for_encoding
// point your encoding service to where it expects the permanent file to reside
// in my case on s3
end
end
Run Code Online (Sandbox Code Playgroud)
我的问题是在我的enqueue_for_encoding方法中,file.url指向本地tmp目录而不是s3目录.
enqueue_for_encoding当file.url指向s3时,如何调用我的方法?
谢谢!
乔纳森
我在XCode中为我的项目添加了三个本地化但我可以提交SVN只有默认语言'English',但另外两个我不能.在'Localizable.strings(SomeLanguage)'旁边我只有'A'但不能将它添加到repo.我在这里错过了什么?第一次使用本地化,XCode 4 ......
我被要求保留一些不像遗产一样的代码,并且它充满了编译器指令,使它几乎不可读,几乎可维护.例证:
#if CONDITION_1
protected override void BeforeAdd(LogEntity entity)
#else
protected override void BeforeAdd(AbstractBusinessEntity entity)
#endif
{
#if CONDITON_1
entity.DateTimeInsert = DateTime.Now;
#else
((LogEntity) entity).DateTimeInsert = DateTime.Now;
#endif
base.BeforeAdd(entity);
}
Run Code Online (Sandbox Code Playgroud)
using 指令甚至更漂亮:
#if CONDITION_1
using CompanyName.Configuration;
#endif
#if CONDITION_2||CONDITION_1
using CompanyName.Data;
using CompanyName.Data.SqlBuilders;
#else
using CompanyName.Legacy.Database;
using CompanyName.Legacy.Database.SQLBuilders;
using CompanyName.Legacy.Database.SQLBuilders.parameterTypes;
#endif
Run Code Online (Sandbox Code Playgroud)
我以为我会ConditionalAttribute放手一搏,但在这种情况下这不会奏效
有什么方法可以解决这个编译器指令的噩梦吗?
代码是针对编译的.NET 3.5.
更新:
Oded回答建议删除BeforeAdd方法周围的编译器指令,从而使其重载.不幸的是,这两个方法都不会起作用,因为两个方法都应该覆盖一个AbstractBusiness类,它提供两种不同的实现,具体取决于最终包含哪些程序集:
protected virtual void BeforeAdd(TEntity entity) {}
Run Code Online (Sandbox Code Playgroud)
要么
protected virtual void BeforeAdd(AbstractBusinessEntity entity) {}
Run Code Online (Sandbox Code Playgroud)
此代码从过去一段时间创建的一组库中获取其依赖关系,并且从那时起一直在"升级".他们现在有4个不同版本的库,其中包含冲突的命名空间和不同的实现.所有这些都与使用(非常)旧版本的应用程序的"向后兼容性"有关.
我最终选择了@Oded的答案,因为它作为一种通用方法最有意义( …
org.apache.wicket.protocol.http.request.InvalidUrlException:
org.apache.wicket.WicketRuntimeException:
After 1 minute the Pagemap null is still locked by:
Thread[http-8443-3,5,main], giving up trying to get the page for path: 3:timer
Run Code Online (Sandbox Code Playgroud)
这1分钟在哪里?是一个检票口设置,还是一个tomcat?要么 ...?我怎么修改这个?
是否有任何现成的解决方案可以将Products.Poi与Subversion更新日志集成?如果没有,那将是编码的步骤?
每当提交SVN存储库引用日志消息中的问题ID时,我都希望在Poi问题跟踪器中添加注释.例如,可以用MantisBT做些什么.
我有一个带utf8编码的xml.此文件包含BOM作为文件的开头.所以在解析过程中我遇到了org.xml.sax.SAXParseException:prolog中不允许使用内容.我无法从文件中删除这3个字节.我无法将文件加载到内存中并在此处删除它们(文件很大).因此,出于性能原因,我正在使用SAX解析器,如果它们在""标记之前存在,则只想跳过这3个字节.我应该为此继承InputStreamReader吗?
我是java的新手 - 请告诉我正确的方法.
我正在尝试添加一个图像(小箭头gif图标),它上传到我的Drupal主题文件(root/sites/all/themes/mytheme/images)中的图像目录.
以下工作在page.tlp.php级别,它也在field.tlp.php级别工作 - 但它在node.tlp.php中不起作用.node.tlp.php文件正在有效工作,但图像没有显示!如果我将完全相同的代码粘贴到上面提到的其他模板中,它确实会显示.. ??
<img src="<?php print base_path() . path_to_theme(); ?>/images/arrow-right.gif" width="20" height="13" alt="Arrow Right">
Run Code Online (Sandbox Code Playgroud)
有什么想法我应该如何在node.tlp.php文件中引用图像?
谢谢!
对于Oracle 11.2.0.2.0中对大量数据进行中型查询的查询执行计划,我遇到了一些问题.为了加快速度,我引入了一个范围过滤器,其大致类似于:
PROCEDURE DO_STUFF(
org_from VARCHAR2 := NULL,
org_to VARCHAR2 := NULL)
-- [...]
JOIN organisations org
ON (cust.org_id = org.id
AND ((org_from IS NULL) OR (org_from <= org.no))
AND ((org_to IS NULL) OR (org_to >= org.no)))
-- [...]
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我想限制JOIN的organisations使用数量组织的可选范围.客户端代码可以调用DO_STUFF(假设是快速)或没有(非常慢)限制.
问题是,PL/SQL将为上面org_from和org_to参数创建绑定变量,这在大多数情况下是我所期望的:
-- [...]
JOIN organisations org
ON (cust.org_id = org.id
AND ((:B1 IS NULL) OR (:B1 <= org.no))
AND ((:B2 IS NULL) OR (:B2 >= org.no)))
-- [...] …Run Code Online (Sandbox Code Playgroud) 我最近发现以下内容不适用于某些网站,例如IMDB.com.
class Program
{
static void Main(string[] args)
{
try
{
System.Net.WebRequest wc = System.Net.WebRequest.Create("http://www.imdb.com"); //args[0]);
((HttpWebRequest)wc).UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.2.153.1 Safari/525.19";
wc.Timeout = 1000;
wc.Method = "HEAD";
WebResponse res = wc.GetResponse();
var streamReader = new System.IO.StreamReader(res.GetResponseStream());
Console.WriteLine(streamReader.ReadToEnd());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
它返回HTTP 405(Method Not Allowed).我的问题是,我使用与上面非常相似的代码来检查链接是否有效以及绝大多数时候它是否正常工作.我可以将它切换到等于GET的方法并且它可以工作(增加超时),但这会使事情减慢一个数量级.我假设405响应是IMDB服务器端的服务器配置.
有没有办法让我在.NET中以轻量级的方式做同样的事情?或者,有没有办法修复上面的代码,所以它作为一个与imdb一起使用的GET请求?
我通常使用gcc和-ansi标志在Linux下编程和编译; 但我被迫在Visual C++中完成一项工作,每当我编译我的C代码时,我都会得到所有的微软警告
'fscanf':此函数或变量可能不安全.请考虑使用fscanf_s.
尽管在MSDN Developer的网站上执行了一些设置ANSI C项目的步骤,但我得到了这些,但所有_s("安全")调用都不是ANSI C!
有关将Visual C++ Studio置于严格的仅限ANSI模式的建议吗?
谢谢.
c# ×2
svn ×2
.net ×1
.net-3.5 ×1
ansi ×1
c#-3.0 ×1
c++ ×1
carrierwave ×1
drupal ×1
drupal-7 ×1
iphone ×1
java ×1
localization ×1
mongoid ×1
objective-c ×1
oracle ×1
plone ×1
plsql ×1
visual-c++ ×1
webrequest ×1
wicket ×1
xerces ×1