使用ubuntu 10.04,rvm.起初,我已经用rvm,gem rails安装了ruby 1.9.2并生成了一些新项目并成功启动了它.一切都很好.但是在更改到另一个项目后,执行bundle install命令(输出看起来没问题)并启动rails server - 出现错误:
导轨
/home/jacek/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/site_ruby/1.9.1/rubygems.rb:316:in `bin_path': can't find gem rails ([">= 0"]) with executable rails (Gem::GemNotFoundException)
from /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin/rails:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)
宝石列表轨道
*** LOCAL GEMS ***
rails (3.2.2)
Run Code Online (Sandbox Code Playgroud)
宝石环境
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.18
- RUBY VERSION: 1.9.2 (2012-02-14 patchlevel 318) [i686-linux]
- INSTALLATION DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318
- RUBY EXECUTABLE: /home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin/ruby
- EXECUTABLE DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /home/jacek/.rvm/gems/ruby-1.9.2-p318
- /home/jacek/.rvm/gems/ruby-1.9.2-p318@global
- GEM CONFIGURATION:
- :update_sources => true
- …
Run Code Online (Sandbox Code Playgroud) 我正在使用devise gem并希望翻译确认邮件.我已经有了自己的模板和重写的邮件方法:
class LocalizedDeviseMailer < Devise::Mailer
def confirmation_instructions(record, locale)
@locale = locale
super
end
end
Run Code Online (Sandbox Code Playgroud)
所以,在我的模板中我可以这样做:
I18n.locale = @locale
Run Code Online (Sandbox Code Playgroud)
然后:
t("it.really.works")
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将我的变量与locale传递给mailer方法.最好的方法是什么?任何帮助,将不胜感激.
起初:那不是错误区域的问题.在irb和数据库中,一切都很好.当我想在我的视图中显示日期(created_at,updated_at以及我自己在每个模型中定义的日期)时出现问题.我试图在application.rb中设置时区并从初始化程序中删除时间格式,但这并没有解决我的问题.
Annotate gem生成的架构信息:
# created_at :datetime
# updated_at :datetime
# publish_at :datetime
Run Code Online (Sandbox Code Playgroud)
来自irb:
1.9.2-p290 :004 > Time.zone
=> (GMT+00:00) UTC
1.9.2-p290 :005 > Time.zone.now
=> Fri, 24 Feb 2012 12:14:04 UTC +00:00
1.9.2-p290 :006 > Time.now
=> 2012-02-24 13:14:07 +0100
Run Code Online (Sandbox Code Playgroud)
例子:
1.9.2-p290 :007 > Article.last
Article Load (0.3ms) SELECT `articles`.* FROM `articles` ORDER BY `articles`.`id` DESC LIMIT 1
=> #<... created_at: "2012-02-24 12:04:24", updated_at: "2012-02-24 12:04:24", publish_at: "2012-02-24 12:04:24"...>
Run Code Online (Sandbox Code Playgroud)
应用显示:
Created_at 2012-02-24 12:02,Updated_at 2012-02-24 12:02,Publish_at 2012-02-24 12:02,
1.9.2-p290 :008 > …
Run Code Online (Sandbox Code Playgroud) 我收到了错误
Call to undefined function FOS\UserBundle\Util\mb_convert_case() app_path/vendor/bundles/FOS/UserBundle/Util/Canonicalizer.php on line 18
Run Code Online (Sandbox Code Playgroud)
当我尝试加载灯具时会发生这种情况.
第一步是安装mbstring.so ext,所以我编译了php
--enable-mbstring
Run Code Online (Sandbox Code Playgroud)
比成功复制mbstring ext
phpize
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)
并补充说
extension=mbstring.so
Run Code Online (Sandbox Code Playgroud)
到我的php.ini文件.不幸的是我仍然遇到了这个错误,php -m没有显示mbstring作为加载的扩展名.怎么了?
任何帮助将不胜感激.
PHP 5.4.7,Debian Lenny
来自php check.php输出
[[WARNING]] Checking that the mb_strlen() function is available: FAILED
*** Install and enable the mbstring extension ***
Run Code Online (Sandbox Code Playgroud) ruby ×3
actionmailer ×1
activeadmin ×1
activerecord ×1
debian ×1
devise ×1
mbstring ×1
php ×1
rvm ×1
symfony ×1