我尝试使用推荐的方式(来自Rails指南)来测试插件中生成的路由,但测试仍然失败.
奇怪的是,如果我在创建路线后重新加载路线(或者我认为),测试失败,但如果我让测试经过一次(例如使用自动测试),那么路线会在后续尝试中被识别.
这是代码:
describe "named route report_with_last_name_smith_path" do
before :all do
Reports::Application.routes.draw do
match "/report_some_report_for_us" => "report#report_some_report_for_us",
:as => :report_some_report_for_us
end
Rails.application.reload_routes! # If I leave this out, then the test
# passes the second time that autotest/autospec
# go through.
end
it "route for every record" do
{:get => '/report_some_report_for_us'}.should route_to(:controller => 'report', :action => 'report_some_report_for_us')
end
end
Run Code Online (Sandbox Code Playgroud)
知道如何让它一直通过吗?
我刚刚使用Rails 3和Paperclip设置了文件上传到Amazon S3.所有这一切都非常好,并且正常运行.我想整理一个小细节.目前,网址是亚马逊网址(即启动http://s3.amazonaws.com),我希望他们从我的域名开始.
我已经将必要的CNAME记录添加到我的DNS中,并且它们正常工作,因此我可以通过我的域的子域访问这些文件.问题在于回形针生成的URL始于亚马逊域.有没有一种简单的方法来更改回形针配置以绕过这个?
干杯
ruby-on-rails amazon-s3 paperclip ruby-on-rails-plugins ruby-on-rails-3
我正在尝试使用devise的reset_password_token强制用户在第一次登录时更改密码,使用我在此处阅读的内容:Rails设计:设置密码重置令牌并重定向用户
我得到的页面加载显示"设置您的密码",但每次我点击提交时,都会发出一条通知,说明reset_password_token已过期并请求新的.我已经尝试将reset_password_token设置为变量,而不是通过用户对象(@ user.reset_password_token)进行访问,以防万一是通过访问该令牌计算到期,但是当我尝试设置初始密码时它仍然表示它已过期.我不确定如何计算到期时间,有人有想法吗?
我有这个错误,这使得无法加载我的应用程序
no such file to load -- coffee_script
(in /Users/damien/projects/easyJobs/app/assets/javascripts/jobs.js.coffee)
Extracted source (around line #10):
7: /[if lt IE 8]
8: = stylesheet_link_tag 'ie.css', :media => 'screen, projection'
9: = stylesheet_link_tag :application
10: = javascript_include_tag :application
11: = csrf_meta_tag
12:
13: %body
Run Code Online (Sandbox Code Playgroud)
这些文件都在那里,但看起来不像是看到它们的原因超出了我:/如果有人知道为什么会发生这个错误让我知道会非常感激.
达米安
我安装插件open_id_authentication并出现此错误:
/usr/lib/ruby/gems/1.9.1/gems/activesupport-3.0.0.beta/lib/active_support/dependencies.rb:167:in `require': no such file to load -- rack/openid (LoadError)
Run Code Online (Sandbox Code Playgroud)
当我尝试启动时rails server
,在我的系统中安装了rack-openid,我可以从irb加载它:
irb(main):001:0> require 'rack/openid'
=> true
Run Code Online (Sandbox Code Playgroud)
我尝试像使用ruby-openid一样添加hack到Gemfile,但它没有帮助:
gem "ruby-openid", :require => "openid"
gem "rack-openid", :require => "rack/openid"
Run Code Online (Sandbox Code Playgroud)
我也试过了
gem "ruby-openid", :require => "rack/openid"
Run Code Online (Sandbox Code Playgroud)
但:
/usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.7/lib/bundler/runtime.rb:38:in `require': no such file to load -- rack/openid (LoadError)
Run Code Online (Sandbox Code Playgroud)
在rails 2.3.5 app中没有这个问题,我无法理解为什么它会在Rails 3中发生.
这将是一个非常愚蠢的问题,我只是知道它,但不管怎样我会问,因为它让我发疯.
我如何使作为标签的行为起作用?
我把它作为一个宝石安装,gem install acts-as-taggable-on因为我似乎无法安装插件工作,但这是另外一批可能真的很愚蠢的问题.无论如何,没有问题,它安装正确.
我没有ruby script/generate acts_as_taggable_on_migration和rake db:migrate,再没有任何问题.
我添加acts_as_taggable到模型中我想使用标签,启动服务器然后加载模型的索引只是为了看看我到目前为止是否正在工作并得到以下错误:未定义的局部变量或方法`acts_as_taggable '为#.
我认为这只意味着我需要对require 'acts-as-taggable-on'我的模型文件做一些事情,因为这通常是宝石所必需的.所以我做了那个点击刷新并得到了uninitialized constant ActiveRecord::VERSION.我甚至不会假装开始知道这意味着什么出错了.
我在某处或其他地方出错了我需要做的事情.在我看来,安装说明就像他们只是假设你一般都知道自己在做什么,甚至没有开始解释当出现问题时该怎么做.
ruby rubygems ruby-on-rails ruby-on-rails-plugins acts-as-taggable-on
鉴于我有一个包含许多图像的清单模型,每个图像都有一个附件,我怎样才能将listing_id作为文件夹结构的一部分?
像这样:system/photos/[listing_id] /:id
我知道使用:id将输出图像记录的id.
这是我现在拥有的:
class Image < ActiveRecord::Base
belongs_to :listing #Rails ActiveRecord Relation. An image belongs to a post.
# paperclip data
has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :url => "/public/system/:class/:attachment/:id/:style_:filename"
Run Code Online (Sandbox Code Playgroud)
结束
在制作Passenger-Monit插件时,我认为使用初始化器是最合适的,即
module PassengerMonit
class Railtie < Rails::Railtie
initializer "my_plugin.some_init_task" do
# my initialization tasks
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,块中的代码从未执行过.我终于做了一个解决方案
config.before_initialize {}
Run Code Online (Sandbox Code Playgroud)
但我很好奇,为什么初始化程序没有被执行.有什么可以阻止它运行?
Rails全新.我在OS X 10.6上有一个简单的Rails 3应用程序,使用默认的sqlite3数据库.
我正在尝试将其转换为使用我已经安装的MySQL服务器.(mysql5 -uroot工作.)我想使用mysql2,我安装,它说它是成功的.
database.yml的:
development:
adapter: mysql2
database: myproject
username: root
socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
的Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.6'
gem 'mysql2'
gem 'sqlite3'
Run Code Online (Sandbox Code Playgroud)
更多信息:
$ bundle show mysql2
/Users/me/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.2
Run Code Online (Sandbox Code Playgroud)
该页面加载:"ActiveRecord :: ConnectionNotEstablished"
我不确定我是否应该myproject自己手动创建数据库.无论如何,我已经尝试过两种方式.
我明白了:
$ rake db:schema:load
(in /Users/me/Sites/myproject/web)
WARNING: This version of mysql2 (0.3.2) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using …Run Code Online (Sandbox Code Playgroud) 我想创建一个可以按月显示的默认日历.默认情况下,日历包含计划的年度事件.我将在每个用户的个人资料中显示此日历.现在,用户可以查看日历上的事件,用户应该能够通过单击日历中的事件将事件标记为出席或不出席.有没有可以提供帮助的宝石或插件
到目前为止,我发现:
calendar ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3