小编Eth*_*han的帖子

什么是在Vim中评论/取消注释行的快速方法?

我在vi中打开了一个Ruby代码文件,有一些注释掉的行#:

class Search < ActiveRecord::Migration
  def self.up
    # create_table :searches do |t|
    #   t.integer :user_id
    #   t.string :name
    #   t.string :all_of
    #   t.string :any_of
    #   t.string :none_of
    #   t.string :exact_phrase
    # 
    #   t.timestamps
    # end
  end

  def self.down
    # drop_table :searches
  end
end
Run Code Online (Sandbox Code Playgroud)

假设我想取消注释第一def ... end部分中的所有行.在Vim中这样做的有效方法是什么?

一般来说,我正在寻找一种简单流畅的方式来评论和取消注释.在这里,我正在处理Ruby代码,但它可能是JavaScript(//)或Haml(-#).

vim comments

1081
推荐指数
28
解决办法
83万
查看次数

如何在PostgreSQL中创建只读用户?

我想在PostgreSQL中创建一个只能从特定数据库中执行SELECT的用户.在MySQL中,命令是:

GRANT SELECT ON mydb.* TO 'xxx'@'%' IDENTIFIED BY 'yyy';
Run Code Online (Sandbox Code Playgroud)

PostgreSQL中的等效命令或命令系列是什么?

我试过了...

postgres=# CREATE ROLE xxx LOGIN PASSWORD 'yyy';
postgres=# GRANT SELECT ON DATABASE mydb TO xxx;
Run Code Online (Sandbox Code Playgroud)

但似乎您可以在数据库上授予的唯一内容是CREATE,CONNECT,TEMPORARY和TEMP.

postgresql

393
推荐指数
9
解决办法
29万
查看次数

如何为vim安装插件?

我想尝试下面链接的Vim插件.它为文件.haml和(可能).sass文件添加语法高亮.

http://github.com/tpope/vim-haml

我这样做了......

$ cd ~/.vim
$ git clone git://github.com/tpope/vim-haml.git
Run Code Online (Sandbox Code Playgroud)

.haml在Vim中打开了一个文件,但没有突出显示.我必须要执行另一个步骤.

vim

146
推荐指数
4
解决办法
13万
查看次数

你能在Rails中获得DB用户名,密码,数据库名称吗?

我正在编写一个rake任务,在Rails/ActiveRecord之外执行一些数据库工作.

有没有办法获得当前环境中的数据库连接信息(主机,用户名,密码,数据库名称)database.yml

我想得到它所以我可以用它来连接这样......

con = Mysql.real_connect("host", "user", "pw", "current_db")
Run Code Online (Sandbox Code Playgroud)

ruby database environment activerecord ruby-on-rails

140
推荐指数
5
解决办法
6万
查看次数

如何避免运行ActiveRecord回调?

我有一些具有after_save回调的模型.通常这很好,但在某些情况下,比如在创建开发数据时,我想保存模型而不运行回调.有一个简单的方法吗?类似于......的东西

Person#save( :run_callbacks => false )
Run Code Online (Sandbox Code Playgroud)

要么

Person#save_without_callbacks
Run Code Online (Sandbox Code Playgroud)

我查看了Rails文档但没有找到任何内容.但是根据我的经验,Rails文档并不总是讲述整个故事.

UPDATE

我发现了一篇博文,解释了如何从这样的模型中删除回调:

Foo.after_save.clear
Run Code Online (Sandbox Code Playgroud)

我找不到该方法的记录,但似乎有效.

ruby ruby-on-rails rails-activerecord

137
推荐指数
10
解决办法
10万
查看次数

为我的Rails应用程序创建自定义配置选项的最佳方法?

我需要为我的Rails应用程序创建一个配置选项.对于所有环境都可以是相同的.我发现,如果我把它设置好environment.rb,它可以在我的视图中使用,这正是我想要的......

environment.rb

AUDIOCAST_URI_FORMAT = http://blablalba/blabbitybla/yadda
Run Code Online (Sandbox Code Playgroud)

效果很好.

但是,我有点不安.这是一个很好的方法吗?有没有更时尚的方式?

ruby environment configuration ruby-on-rails

132
推荐指数
7
解决办法
7万
查看次数

如何在测试环境中运行Rails控制台并加载test_helper.rb?

背景:我遇到了Thoughtbot的"Factory Girl"宝石的一些问题,用于创建在单位和其他测试中使用的对象.我想去控制台并运行不同的Factory Girl电话来查看发生了什么.例如,我想进去那里做...

>> Factory(:user).inspect
Run Code Online (Sandbox Code Playgroud)

我知道你可以在不同的环境中运行控制台......

$ script/console RAILS_ENV = test

但是当我这样做时,工厂课程不可用.看起来好像test_helper.rb没有加载.

我尝试了各种require调用,包括一个绝对路径,test_helper.rb但它们与此类似地失败:

$ script/console RAILS_ENV=test
>> require '/Users/ethan/project/contactdb/test/test_helper.rb'
  Errno::ENOENT: No such file or directory - 
  /Users/ethan/project/contactdb/config/environments/RAILS_ENV=test.rb
Run Code Online (Sandbox Code Playgroud)

格儿.哎呀.

ruby testing ruby-on-rails shoulda

118
推荐指数
4
解决办法
9万
查看次数

config/environments/development.rb中"consideration_all_requests_local"的用途?

这个Rails配置设置的目的是什么......

config.action_controller.consider_all_requests_local = true
Run Code Online (Sandbox Code Playgroud)

默认情况下,它设置为true config/environments/development.rb.

谢谢,

阮经天

ruby ruby-on-rails

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

在Rails中测试时如何设置HTTP_REFERER?

我正在尝试测试控制器,我收到了这个错误.我理解错误,但不知道如何解决它.

test: on CREATE to :user with completely invalid email should respond with 
  redirect
(UsersControllerTest):ActionController::RedirectBackError: 
  No HTTP_REFERER was set in the request to this action, 
  so redirect_to :back could not be called successfully. 
If this is a test, make sure to specify request.env["HTTP_REFERER"].
Run Code Online (Sandbox Code Playgroud)

指定它在哪里?我试过这个:

setup { post :create, { :user => { :email => 'invalid@abc' } }, 
  { 'referer' => '/sessions/new' } }
Run Code Online (Sandbox Code Playgroud)

但得到了同样的错误.

用什么确切地指定它?我想我希望它返回的视图的URI:

'/sessions/new'
Run Code Online (Sandbox Code Playgroud)

这是他们的意思吗?


好的,所以事实证明他们的意思是这样做:

setup do
  @request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
  post :create, { :user => { :email …
Run Code Online (Sandbox Code Playgroud)

ruby testing ruby-on-rails

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

卡皮斯特拉诺的"角色"究竟是什么?

Capistrano食谱中"角色"的目的和功能是什么?当我查看样本食谱时,我经常会看到这样的事情:

role :app, 'somedomain.com'
role :web, 'somedomain.com'
role :db,  'somedomain.com', :primary => true
Run Code Online (Sandbox Code Playgroud)

所以看起来角色基本上是Capistrano执行命令的服务器.如果是这种情况,那为什么它会被称为"角色"而不是"主机"或"服务器"?

在上面的例子中,角色:app:web角色之间有什么区别?

:primary => true选项有什么作用?

ruby capistrano ruby-on-rails

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