通常我使用:
gem install rails
Run Code Online (Sandbox Code Playgroud)
我可以在Windows上安装Rails,但默认情况下,我想安装了最新版本3.0.3.
所以,如果我想安装其他版本的Rails,那么就说3.0.1,我该怎么办呢?
有一个共同的模式:
有许多开发人员在一个项目上工作,Gemfile(.lock)通过SCM共享.但是,如果一些开发人员想要使用不同的工具进行测试和开发呢?怎么做?
问题是,当您将条件部分放入Gemfile时,每个开发人员的Gemfile.lock也会有所不同,因此每次提交SCM时都会遇到冲突.
有一些简单,广泛认可的解决方案吗?
对于我的应用程序,我需要处理加密的ZIP文件.尽管看起来可怕的网站,但似乎Chilkat的商业Zip宝石可能是实现这一目标的最佳方式.
因为这是一个商业宝石,所以他们没有在Bundler看到的任何典型宝石资源中使用它.我能够在Mac OS X下安装Linux 64位版本的gem(虽然我还没有尝试过运行它,所以还没有任何关于它是否真的有用的话).但是,我首先尝试让Bundler从我下载的.gem文件中识别并加载gem.
Bundler有一个路径属性,我试图在几个方面使用它,但我还没有让它工作:
这是我得到的错误:
$ bundle install
Fetching source index for http://rubygems.org/
Fetching source index for http://gems.github.com/
Could not find gem 'chilkat (>= 0, runtime)' in source at /Users/username/appname/vendor/cache/chilkat-9.1.0-x86_64-linux.
Source does not contain any versions of 'chilkat (>= 0, runtime)'
Run Code Online (Sandbox Code Playgroud)
关于如何让Bundler看到gem确实在这个目录中的任何想法?路径属性以外的任何其他选项似乎都不起作用?
非常感谢!
我正在运行Rails 2.3.2.
我如何转换"Cool"为"cool"?我知道"Cool".downcase有效,但有没有一个Ruby/Rails方法,相反的capitalize,即,uncapitalize或decapitalize?
可能重复:
Ruby中的|| =是什么意思?
请原谅我,如果这是一个新问题,但我正在读一本关于作者在辅助方法中使用此表达式的轨道上的书:
@current_user ||= User.find_by_id(session[:user_id])
Run Code Online (Sandbox Code Playgroud)
这种双管道的使用仍然是一个布尔OR语句吗?
如果是这样,它是如何工作的?
说我有数组[1,2,3,1,2,3],我想删除的第一个实例(比如说)2从数组给[1,3,1,2,3].什么是最简单的方法?
这两个陈述有什么区别?我在我的rails应用程序中使用它们,对我而言看起来它们做同样的事情
array_a = Array.new
array_b = []
Run Code Online (Sandbox Code Playgroud) 这实际上是一个关于命名约定的问题.
我有一个名为PromotedEvents的模型
该文件名为promote_events.rb
我创建了表:
create_table :promoted_events do |t|
Run Code Online (Sandbox Code Playgroud)
现在我在创建任何东西时遇到了问题,所以我想知道使用带有两个单词的模型是否有问题
我在控制台并尝试过
a = PromotedEvents.new
a = Promoted_Event.new
a = promoted_event.new
Run Code Online (Sandbox Code Playgroud)
并继续收到nameerror : uninitialized constant错误
有任何想法吗?
我有一个非常常见的嵌套路由的情况,我觉得,看起来像这样(在某种伪旋律):
'/:username/photos' => Show photos for User.find_by_username
'/photos' => Show photos for User.all
Run Code Online (Sandbox Code Playgroud)
简而言之:我有用户.他们有照片.我希望能够在他们的页面上显示他们的照片.我也希望能够显示所有照片,无论用户如何.我想保持我的路线RESTful,并使用内置resource方法感觉是正确的方式来做到这一点.
执行此操作的选项1是让PhotosController #index使用条件来检查给出了哪些参数并获取照片列表并设置视图(用户照片与所有照片不同).路由它甚至很容易:
resources :photos, :only => [:index]
scope ':/username' do
resources :photos
end
Run Code Online (Sandbox Code Playgroud)
繁荣.它会看起来像Rails的是设置此.然而,在路线之后,事情变得更加复杂.在PhotosController #index动作中的条件变得越来越臃肿,并且正在进行大量的delgation.随着应用程序的增长以及我想要显示照片的方式的增加,它只会变得更糟.
选项2可能是让User :: PhotosController处理用户照片,以及一个PhotosController来处理显示所有照片.
resources :photos, :only => [:index]
namespace :user, :path => '/:username' do
resources :photos
end
Run Code Online (Sandbox Code Playgroud)
这会产生以下路线:
photos GET /photos(.:format) {:action=>"index", :controller=>"photos"}
user_photos GET /:username/photos(.:format) {:action=>"index", :controller=>"user/photos"}
POST /:username/photos(.:format) {:action=>"create", :controller=>"user/photos"}
new_user_photo GET /:username/photos/new(.:format) {:action=>"new", :controller=>"user/photos"}
edit_user_photo GET /:username/photos/:id/edit(.:format) {:action=>"edit", :controller=>"user/photos"}
user_photo …Run Code Online (Sandbox Code Playgroud)