Tag: devise原则

REST URLdevise – 一个HTTP调用中的多个资源

可能重复: Rails 3 Custom将多个ID作为参数 根据我的理解,获取资源的良好REST URL将如下所示: /resource/{id} 我遇到的问题是,我经常需要同时获取大量的资源,而不想为每个资源都分别进行HTTP调用 。 是否有一个整洁的URLdevise,将迎合这一点,或者这只是不适合REST API?

版本控制数据库持久对象,你会怎样?

(与版本控制数据库模式无关) 与数据库交互的应用程序通常具有由多个表中的数据组成的域对象。 假设应用程序支持这些域对象的版本控制,就CVS而言。 对于一些仲裁域对象,你将如何devise一个数据库模式来处理这个需求? 任何经验分享?

使用Devise令牌login,是内置的?

所以,我试图使用Devise(版本1.0.3和Rails 2.3.8)来让用户login,但我不完全确定从哪里开始。 http://zyphdesignco.com/blog/simple-auth-token-example-with-devise 上面的教程帮助我打开了令牌function,并展示了如何生成(或删除)令牌……但整个令牌的要点是使用它们来授权用户,对吗? 当我在控制台中查看一个用户时,我可以说user.authentication_token,并得到像“Qm1ne93n_XkgmQTvxDmm”,这是很好,但是我从哪里去? 我尝试使用以下命令行命令击中sign_in根: curl -d“authentication_token = Qm1ne93n_XkgmQTvxDmm”localhost:3000 / users / sign_in 而且肯定没有成功login。 在会议控制器中,我看到他们称之为: validation(RESOURCE_NAME) 我所假设的是模块中的某个地方: 包括Devise :: Controllers :: InternalHelpers 哪些被包括,但我不知道在哪里寻找(这绝对不是在源的控制器文件夹)。 如果我可以看看authentication是如何工作的,我可以看看它是否还能看到令牌。 devise让你真的用令牌login,还是只有一个框架来生成它们? 如果它确实让你login他们…你是怎么做到的? 你不能使用curl(即它是否必须在浏览器中?)如果是这样的话,我会推出自己的解决scheme,我需要非浏览器支持。 如果没有,我该如何推出自己的?

如何显示一个方法是否可以返回null

在发布这个问题并阅读这个问题之后,我意识到知道一个方法应该返回null是非常重要的,或者如果这被认为是一个错误条件并且应该抛出一个exception。 还有一个很好的讨论何时返回“空”或抛出exception 。 我正在写一个方法,而且我已经知道如果我想要返回null还是抛出一个exception,那么expression我的决定的最好方法是什么,换句话说,就是要logging我的合同? 我可以想到的一些方法: 写在规格/文档(任何人都可以阅读?) 使其成为方法名称的一部分(正如我在这里所build议的) 假设每一个引发exception的方法都不会返回null,而每一个“不”抛出的方法都会返回null。 我主要谈论java,但也可能适用于其他语言:为什么有一个正式的方式来表示如果抛出exception( throws关键字),但没有正式的方式来表示,如果null可能会返回? 为什么不存在这样的事情: public notnull Object methodWhichCannotReturnNull(int i) throws Exception { return null; // this would lead to a compiler error! } 总结和结论 合同的expression方式有很多种: 如果您的IDE支持(如IntelliJ),最好使用@NotNull这样的注释,因为它对程序员是可见的,并且可以用于自动编译时间检查。 Eclipse有一个插件可以添加对这些的支持,但是这对我没有任何作用。 如果这些不是选项,则使用自定义types,如Option<T>或NotNull<T> ,这样可以增加清晰度并至less在运行时进行检查。 无论如何,在JavaDoc中logging合同从不会伤害,有时甚至是有帮助的。 使用方法名来logging返回值的可空性并不是除了我之外的任何人提出的,虽然它可能是非常冗长而不总是有用的,但我仍然相信它有时也有其优点。

数据库devise:计算账户余额

我如何devise数据库来计算帐户余额? 1)目前我从交易表中计算账户余额在我的交易表中我有“描述”和“金额”等。 然后,我将所有的“金额”值加起来,这将计算出用户的账户余额。 我向我的朋友展示了这一点,他说这不是一个好的解决scheme,当我的数据库增长将减慢? 他说我应该创build单独的表来存储计算的账户余额。 如果这样做,我将不得不保持两张表,而且它的风险很大,账户余额表可能不同步。 任何build议? 编辑 :选项2:我应该添加一个额外的列到我的交易表“余额”。 现在我不需要经过许多行数据来执行我的计算。 约翰买了100美元的贷款,他偿还了60美元,然后又增加了200美元。 金额$ 100,余额$ 100。 金额 – $ 60,余额$ 40。 金额$ 200,余额$ 240。

Actor模式 – 它究竟是什么构成的

我正在做一些Objective-C / iOS开发,并且已经听到了几个对Actor模式的引用。 在大书呆子牧场书,它说: 当你有一个长时间运行的任务和一些代码需要在完成后执行的时候使用一个actor对象。 这种types的对象被赋予执行任务所需的信息,并在完成任务时执行callback。 该angular色在自己的线程上运行,没有任何进一步的input,并在完成时被销毁。 这里的演员与networking通话一起使用。 这是演员如何主要使用? 与代表团相互排斥还是互补? Actor定义看起来非常宽泛,我试图更好地处理它的含义。 另外,是否有可能在非OO环境中有Actor?

唯一约束与唯一索引

我有兴趣了解开发人员喜欢使用哪种技术来强制执行SQL Server中的唯一性:UNIQUE CONSTRAINT或UNIQUE INDEX。 鉴于每一个的物理实现没有什么区别,你如何决定哪一个最好? 除了performance评估最佳解决scheme是否有其他原因? 有没有数据库pipe理的好处之一?

Liskov替代原则 – 没有压倒性的/虚拟的方法?

我对Liskovreplace原理的理解是,基类的某些属性是真实的,或者基类的某些实现行为,对于派生类也应该是真实的。 我猜这将意味着当一个方法在基类中定义时,它不应该在派生类中被覆盖 – 因为然后replace基类而不是派生类会得到不同的结果。 我想这也意味着,有(非纯)虚拟方法是一件坏事? 我想我可能对这个原理有一个错误的理解。 如果我不这样做,我不明白为什么这个原则是好的做法。 谁可以给我解释一下这个? 谢谢

“重试”逻辑失败的devise模式?

我正在写一些重新连接逻辑,以定期尝试build立连接到一个远程端点的故障。 本质上,代码如下所示: public void establishConnection() { try { this.connection = newConnection(); } catch (IOException e) { // connection failed, try again. try { Thread.sleep(1000); } catch (InterruptedException e) {}; establishConnection(); } } 我已经在很多场合用类似于上面的代码解决了这个普遍的问题,但是我对结果很不满意。 有没有devise模式来处理这个问题?

如何devise一个DAO类?

devise一个DAO类最好的方法是什么? 方法1: deviseDAO类作为对象 。 class Customer { //customer class } class CustomerDAO { public void saveCustomer(Customer customer) { //code } public Customer getCustomer(int id) { //code } } //Client code class client { public static void main(String[] args) { CustomerDAO customerDAO = new CustomerDAO(); Customer customer = new Customer(); customerDAO.saveCustomer(customer); } } 方法2: 用静态方法deviseDAO类 (又名静态类) […]