我需要一个关于如何在ruby中实现"客户端 - 服务器"Web应用程序的建议.任何指南和最佳实践都非常感谢.我对Ruby方式和所需的宝石感兴趣,因为它是一个理想的平台,以及实现这些东西的一般方式和逻辑.
我不是一个优秀的红宝石程序员或熟练的系统设计师,可悲地多年,所以我真的需要你的帮助,因为我仍然希望这件事最终会闪耀.
应用程序的当前外观应如下所示:
DB + Auth DB < - > API App < - >其他应用:
API应用程序:看起来最好的工具是Sinatra.问题是:
其他应用程序:主要是基于Web的UI.这部分的逻辑选择是Rails.主要问题是如何实现客户端身份验证.设计很酷,但它是否可以使用令牌,或者它是更合适的工具?
我有一个Capistrano部署脚本已经工作了一段时间,但现在它在部署时抛出了这样的错误:
/Users/lifecoder/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/psych.rb:203:in `parse': (<unknown>): control characters are not allowed at line 1 column 1 (Psych::SyntaxError)
from /Users/lifecoder/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/psych.rb:203:in `parse_stream'
from /Users/lifecoder/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/psych.rb:151:in `parse'
from /Users/lifecoder/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/psych.rb:127:in `load'
...
Run Code Online (Sandbox Code Playgroud)
它在部署期间还会抛出几个警告:
** [out :: test.domain] Warning! PATH is not properly set up, '/home/lifecoder/.rvm/gems/ruby-1.9.3-p448/bin' is not at first place,
** [out :: test.domain]
** [out :: test.domain] usually this is caused by shell initialization files - check them for 'PATH=...' entries,
** [out :: test.domain]
** [out :: test.domain] to fix run: 'rvm use ruby-1.9.3-p448'.
Run Code Online (Sandbox Code Playgroud)
我在 …
可能重复:
Drupal 7比Drupal 6慢吗?
我想开始新的项目并且不知道要使用什么版本.
我对D6有很大的帮助,还有D7的一个项目(模块开发).看起来D7速度较慢,内存消耗较大,而且目前还缺乏文档.我不需要新的CCK,视图和其他 - 看起来我将编码所需的所有功能作为模块.
D7现在有甜蜜的部分,还是更好的方式是在D6下开发项目?
你自己选择什么方式,为什么?
我需要添加一个对象的状态,并需要一个关于Rails方法的提示.在某个地方,我看到状态被添加到模型中,但已经丢失了.
按状态,我的意思是跟踪项目状态.喜欢{0: :ORDERED, 1: :CHANGED, 2: :SHIPPED, 3: :ARCHIVED}在商店订购.看起来它需要存储在DB,常量或符号中的id,我可以在代码中使用而不是整数id,以及一个或两个用于UI的人类可读消息
我认为DI的实现是为了允许在应用程序上使用相同的服务,并根据需要进行更改.但是这个代码片段(Angular 2.0.0-beta.0)拒绝工作:
# boot.ts
import {ProjectService} from './project.service'
bootstrap(AppComponent, [ProjectService]);
# my.component.ts
export class MyComponent {
constructor(project: ProjectService) {
}
}
Run Code Online (Sandbox Code Playgroud)
它具有明确的服务要求:
# my.component.ts
import {ProjectService} from './project.service';
export class MyComponent {
constructor(project: ProjectService) {
}
}
Run Code Online (Sandbox Code Playgroud)
官方文档有点不一致,但在plunkr示例中也是如此:
# boot.ts
import {HeroesListComponent} from './heroes-list.component';
import {HeroesService} from './heroes.service';
bootstrap(HeroesListComponent, [HeroesService])
# heroes-list.component.ts
import {HeroesService} from './heroes.service';
Run Code Online (Sandbox Code Playgroud)
这是DI使用的预期方式吗?为什么我们必须在每个需要它的类中导入服务,如果我们不能在启动时描述服务,那么它的好处在哪里?
我想实现friendly_id现有的模型.应用程序使用russiangem,它可以很好地处理新的或手动保存的记录,但是当我从命令行更新记录时它似乎不起作用.
User.find_each(&:save)(正如friendly_id docs syggested)生成slu like之类的--<id>.
我使用自定义规范化方法来提供音译slu ::
def normalize_friendly_id(input)
Russian.transliterate input.to_s.mb_chars.downcase
end
Run Code Online (Sandbox Code Playgroud)
但它绝对可能会遗漏一些边缘情况,并处理字符串与"正常"工作流程不同.我正在寻找的是重用常规创建/更新流和本机行为的方法.
ruby ×2
angular ×1
api ×1
capistrano ×1
deployment ×1
drupal-6 ×1
drupal-7 ×1
friendly-id ×1
linux ×1
model ×1
sinatra ×1
ubuntu ×1