我在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(-#).
我想在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.
我想尝试下面链接的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中打开了一个文件,但没有突出显示.我必须要执行另一个步骤.
我正在编写一个rake任务,在Rails/ActiveRecord之外执行一些数据库工作.
有没有办法获得当前环境中的数据库连接信息(主机,用户名,密码,数据库名称)database.yml?
我想得到它所以我可以用它来连接这样......
con = Mysql.real_connect("host", "user", "pw", "current_db")
Run Code Online (Sandbox Code Playgroud) 我有一些具有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)
我找不到该方法的记录,但似乎有效.
我需要为我的Rails应用程序创建一个配置选项.对于所有环境都可以是相同的.我发现,如果我把它设置好environment.rb,它可以在我的视图中使用,这正是我想要的......
environment.rb
AUDIOCAST_URI_FORMAT = http://blablalba/blabbitybla/yadda
Run Code Online (Sandbox Code Playgroud)
效果很好.
但是,我有点不安.这是一个很好的方法吗?有没有更时尚的方式?
背景:我遇到了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)
格儿.哎呀.
这个Rails配置设置的目的是什么......
config.action_controller.consider_all_requests_local = true
Run Code Online (Sandbox Code Playgroud)
默认情况下,它设置为true config/environments/development.rb.
谢谢,
阮经天
我正在尝试测试控制器,我收到了这个错误.我理解错误,但不知道如何解决它.
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) 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 ×7
environment ×2
testing ×2
vim ×2
activerecord ×1
capistrano ×1
comments ×1
database ×1
postgresql ×1
shoulda ×1