标签: ruby

在Windows上安装特定的Ruby on Rails版本

通常我使用:

gem install rails
Run Code Online (Sandbox Code Playgroud)

我可以在Windows上安装Rails,但默认情况下,我想安装了最新版本3.0.3.

所以,如果我想安装其他版本的Rails,那么就说3.0.1,我该怎么办呢?

ruby ruby-on-rails

33
推荐指数
1
解决办法
3万
查看次数

如何为每个开发人员自定义Gemfile?

有一个共同的模式:

有许多开发人员在一个项目上工作,Gemfile(.lock)通过SCM共享.但是,如果一些开发人员想要使用不同的工具进行测试和开发呢?怎么做?

问题是,当您将条件部分放入Gemfile时,每个开发人员的Gemfile.lock也会有所不同,因此每次提交SCM时都会遇到冲突.

有一些简单,广泛认可的解决方案吗?

ruby bundler

33
推荐指数
2
解决办法
3537
查看次数

如何在脱机.gem文件中使用Bundler?

对于我的应用程序,我需要处理加密的ZIP文件.尽管看起来可怕的网站,但似乎Chilkat的商业Zip宝石可能是实现这一目标的最佳方式.

因为这是一个商业宝石,所以他们没有在Bundler看到的任何典型宝石资源中使用它.我能够在Mac OS X下安装Linux 64位版本的gem(虽然我还没有尝试过运行它,所以还没有任何关于它是否真的有用的话).但是,我首先尝试让Bundler从我下载的.gem文件中识别并加载gem.

Bundler有一个路径属性,我试图在几个方面使用它,但我还没有让它工作:

  1. 我尝试使用path指向.gem文件本身,但路径需要一个目录.
  2. 我尝试将.gz添加到.gem文件的末尾并将其解压缩 - 我在里面找到了一个带有data.tar.gz和metadata.gz的目录.路径指向提取的目录,这两个文件不起作用.
  3. 我尝试提取data.tar.gz和metadata.gz,并将提取的版本放在我指向的路径中.这失败了.
  4. 我注意到gem没有gemspec文件 - 我创建了一个并将其放在目录中.没运气.

这是我得到的错误:

$ 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确实在这个目录中的任何想法?路径属性以外的任何其他选项似乎都不起作用?

非常感谢!

ruby rubygems ruby-on-rails bundler

33
推荐指数
3
解决办法
3万
查看次数

Ruby on Rails没有首字母大写

我正在运行Rails 2.3.2.

我如何转换"Cool""cool"?我知道"Cool".downcase有效,但有没有一个Ruby/Rails方法,相反的capitalize,即,uncapitalizedecapitalize

ruby ruby-on-rails lowercase capitalize

33
推荐指数
5
解决办法
2万
查看次数

Ruby变量赋值中的双管符号?

可能重复:
Ruby中的|| =是什么意思?

请原谅我,如果这是一个新问题,但我正在读一本关于作者在辅助方法中使用此表达式的轨道上的书:

@current_user ||= User.find_by_id(session[:user_id])
Run Code Online (Sandbox Code Playgroud)

这种双管道的使用仍然是一个布尔OR语句吗?

如果是这样,它是如何工作的?

ruby boolean variable-assignment

33
推荐指数
3
解决办法
3万
查看次数

从数组中删除匹配元素的第一个实例

说我有数组[1,2,3,1,2,3],我想删除的第一个实例(比如说)2从数组给[1,3,1,2,3].什么是最简单的方法?

ruby arrays

33
推荐指数
3
解决办法
2万
查看次数

Ruby数组创建,Array.new vs []

这两个陈述有什么区别?我在我的rails应用程序中使用它们,对我而言看起来它们做同样的事情

array_a = Array.new
array_b = []
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

33
推荐指数
2
解决办法
3万
查看次数

如何通过电子邮件获取域名

如何从ruby中的电子邮件地址获取域名?

ruby ruby-on-rails

33
推荐指数
2
解决办法
1万
查看次数

Ruby/Rails - 以两个单词命名的模型(命名约定问题)

这实际上是一个关于命名约定的问题.

我有一个名为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错误

有任何想法吗?

ruby ruby-on-rails naming-conventions

33
推荐指数
3
解决办法
3万
查看次数

在Rails 3中路由嵌套资源

我有一个非常常见的嵌套路由的情况,我觉得,看起来像这样(在某种伪旋律):

'/: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)

ruby routing ruby-on-rails ruby-on-rails-3

33
推荐指数
2
解决办法
2万
查看次数