Rails 3.0.1 Mongoid(2.0.0.beta.20)
Class Post embeds_many:comments字段:comments_count结束
Class Comment
embedded_in :commentable, :inverse_of => :comments
end
Run Code Online (Sandbox Code Playgroud)
我想选择10个评论最多的帖子.要做到这一点,我需要Post中的comments_count字段.但由于我的评论是多态的(Post.comments,Message.comments等),我不希望在Post中创建inc回调.我不想做的是在Comment中创建回调,它将更新Post中的comment_count字段.
我不知道如何从parrent文件中在Field上的嵌入式文档中执行inc操作,并从parrent文件执行此回调
我的应用程序具有该Utilisation模块下的站点公共部分的所有控制器,它们都继承自Utilisation::UtilisationController.我想为这些控制器的利用/布局/*.html.erb'制作默认布局.
我尝试过:
layout 'utilisation/layouts/application.html.erb'
Run Code Online (Sandbox Code Playgroud)
但我明白了
ActionView::MissingTemplate (Missing layout layouts/utilisation/application ...
Run Code Online (Sandbox Code Playgroud)
如何更改默认布局目录?
我想把遗漏"..."作为我截断的红宝石字符串的链接.这就是我所拥有的:
<%= truncate(testimony.testimony, :length => 125, :omission => (link_to "...", testimony)) %><br />
Run Code Online (Sandbox Code Playgroud)
但它这样做:
Etiam porta sem malesuada magna mollis euismod. Aenean lacinia bibendum nulla sed consectetur<a href="/testimonies/1">...</a>
Run Code Online (Sandbox Code Playgroud)
而不是使实际......链接显示代码.请参阅:http://cl.ly/4Wy3获取屏幕截图.
谢谢!
我需要做以下查询:
SELECT * FROM "specimens" ORDER BY distribution_sheet_id DESC LIMIT 10
Run Code Online (Sandbox Code Playgroud)
我已经把:
<%= Specimen.last(:order => :distribution_sheet_id).id %>
Run Code Online (Sandbox Code Playgroud)
我喜欢输出'limit 10'而不是限制1.我认为它是.last,但是我可以用其他方式表达它来限制10.
谢谢
我在使用Rspec 1.3的rails 2.3.8应用程序中设置capybara(0.4.1.2)时遇到一些麻烦.从安装capybara说明中,我插入了以下行:
require 'capybara/rspec'
Run Code Online (Sandbox Code Playgroud)
然而,这给了我一个遗漏的常数错误.好像它正在寻找一个没有加载的类'RSpec'(我猜这是一个RSpec 2/Rails 3的东西).
那么如何让Rspec识别出rails 2.3下的水豚呢?我应该使用早期版本的capy吗?
PS.这是回溯的片段:
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'
|| from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/rails-2.3.5/lib/rails/gem_dependency.rb|119| Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. Use #requirement
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|443| in `load_missing_constant': uninitialized constant RSpec (NameError)
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|80| in `const_missing_not_from_s3_library'
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb|206| in `const_missing'
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|92| in `const_missing'
| from /Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/capybara-0.4.1.2/lib/capybara/rspec.rb:4
/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `gem_original_require'
/Users/rafe/.rvm/rubies/ruby-1.8.6-p399/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb|31| in `require'
/Users/rafe/.rvm/gems/ruby-1.8.6-p399@lci/gems/activesupport-2.3.5/lib/active_support/dependencies.rb|158| in `require'
|| from /Users/rafe/cmi/lci/branches/forums/spec/spec_helper.rb:12
Run Code Online (Sandbox Code Playgroud) 将使用Net::IMAP库提取的电子邮件传递给Mail使用mikel/mailgem 定义的对象时遇到问题.
我收到邮件:
data = imap.uid_fetch(1, "BODY[]")
Run Code Online (Sandbox Code Playgroud)
但是我应该如何将它放入Mail.read约定?
mail = Mail.read(data.to_s)
Run Code Online (Sandbox Code Playgroud)
似乎得到了Errno::ENAMETOOLONG: File name too long.它将邮件正文理解为文件名.
有任何想法吗?
刚开始使用Rails.我在windows vista上,从http://rubyinstaller.org/安装了最新版本的ruby ,一切顺利.
ruby -v
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
Run Code Online (Sandbox Code Playgroud)
我跑:
gem update --system
gem sources -a http://gemcutter.org
gem install rails
Run Code Online (Sandbox Code Playgroud)
没有错误报告.
rails --v
Rails 3.1.0
Run Code Online (Sandbox Code Playgroud)
在此之后,我为我的Rails项目创建了一个文件夹,我在里面创建了一个新的Rails应用程序,如下所示:
rails new test
cd test
bundle install
Run Code Online (Sandbox Code Playgroud)
(再次没有报错)
但是当我跑步时rails server我得到这个错误:
rails server
?[31mCould not find rails-3.1.0 in any of the sources?[
?[33mRun `bundle install` to install missing gems.?[0m
Run Code Online (Sandbox Code Playgroud)
我尝试再次运行bundle但没有再次成功...在此之后,如果我再次键入rails -v我会得到与以前相同的错误.我必须关闭Windows控制台并重新打开rails -v才能重新开始工作!
有没有人经历过这个?!你能帮我吗?
谢谢!!!
根据要求,gemfile内容为:
source 'http://rubygems.org'
gem 'rails', '3.1.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git' …Run Code Online (Sandbox Code Playgroud) 如果我有两个查询,如下所示:
Store.any_in(:store_id => @user.stores_followed)
Store.any_in(:store_id => @category.stores)
Run Code Online (Sandbox Code Playgroud)
如何使用any_of将它们加入OR?我试过这个但事实并非如此.我试过了
Store.any_of({:store_id.any_in => @user.stores_followed},
{:store_id.any_in => @category.stores})
Run Code Online (Sandbox Code Playgroud) 我得到了一个失败的测试,我调试很困难.
我的测试用例是:
it "routes to #active" do
get ("/parties/active").should route_to("parties#active")
end
Run Code Online (Sandbox Code Playgroud)
我的路线是:
resources :parties do
get 'active', :on => :collection
end
Run Code Online (Sandbox Code Playgroud)
当我运行测试用例时,我收到以下错误:
NoMethodError: undefined method `values' for "/parties/active":String
Run Code Online (Sandbox Code Playgroud)
完整错误输出:https://gist.github.com/1748264
当我运行rake路线时,我看到:
active_parties GET /parties/active(.:format) parties#active
parties GET /parties(.:format) parties#index
POST /parties(.:format) parties#create
new_party GET /parties/new(.:format) parties#new
edit_party GET /parties/:id/edit(.:format) parties#edit
party GET /parties/:id(.:format) parties#show
PUT /parties/:id(.:format) parties#update
DELETE /parties/:id(.:format) parties#destroy
root / parties#show
Run Code Online (Sandbox Code Playgroud)
我正在运行的测试几乎与脚手架生成的测试相同:
it "routes to #new" do
get("/parties/new").should route_to("parties#new")
end
Run Code Online (Sandbox Code Playgroud)
知道发生了什么事吗?
我正在寻找一个Rails插件,它可以简化Ruby on Rails最新版本的"朋友"系统或社交网络系统的开发.
在有人说之前......我知道,我应该自己创建,从头开始.我完全有能力(我认为).我只是在寻找一个好的插件,可以让我的生活变得更轻松一点.)给我一些想法供参考.
我尝试制作自己的身份验证系统,做了我认为没问题的事情,但后来切换到restful_authentication并意识到我的系统比较糟糕.
提前致谢...