小编Kir*_*Kir的帖子

在rake任务中打开与mysql DB的连接

我有一个Rails 3.2应用程序,它使用PostgreSQL来存储所有信息.

但在一个Rake任务中,我需要与MySQL服务器建立连接.我试着这样做:

ActiveRecord::Base.establish_connection(
    :adapter  => "mysql2",
    :database => "foo",
    :user => "root", 
    :password => "",
)
Run Code Online (Sandbox Code Playgroud)

但它只是用这个临时MySQL替换我的默认PostgreSQL连接.

如何为实例进行额外连接?

mysql postgresql activerecord ruby-on-rails ruby-on-rails-3

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

扩展CWebUser并重写Yii accessControl

我最近扩展了CWebUser类,现在它有这样有用的方法:

Yii::app()->user->isAdmin;
Yii::app()->user->isTeacher;
Yii::app()->user->isStudent;
Run Code Online (Sandbox Code Playgroud)

现在有accessControl过滤器的麻烦.

之前,为了只允许管理员访问,我用过:

public function accessRules()
    {
        return array(
            array('allow',
                'actions'=>array('index','update', 'create', 'delete'),
                'users'=>array('admin'),
            ),
            array('deny',
                'users'=>array('*'),
            ),
        );
    } 
Run Code Online (Sandbox Code Playgroud)

如何重写accessRules只为具有Yii :: app() - > user-> isAdmin属性的用户委派访问权限?

php yii

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

jsdom的奇怪错误 - node.js

我试图从示例中运行简单的代码:

require.paths.unshift('/etc/npm'); // path to modules
var httpAgent = require('http-agent'),
    jsdom = require('jsdom'),
    sys = require('sys');

var agent = httpAgent.create('www.twitter.com', ['', 'about']);

agent.addListener('next', function (e, agent) {
  var body = agent.body;
  var window = jsdom.jsdom(body, {},{}).createWindow();
  jsdom.jQueryify(window, 'http://code.jquery.com/jquery-1.4.2.js', function (window, jquery) {
    agent.next();
  });
});

agent.addListener('stop', function (agent) {
  sys.puts('the agent has stopped');
});

agent.start();
Run Code Online (Sandbox Code Playgroud)

但它在这一行上返回了很多错误:

var window = jsdom.jsdom(body, {},{}).createWindow();
Run Code Online (Sandbox Code Playgroud)

误差修改:

kir@nas:~/node$ node test.js

/usr/local/lib/node/.npm/jsdom/0.1.21/package/lib/jsdom/browser/index.js:197
  if (!dom.HTMLDocument.write) {
                       ^
TypeError: Cannot read property 'write' of undefined
    at Object.browserAugmentation (/usr/local/lib/node/.npm/jsdom/0.1.21/package/lib/jsdom/browser/index.js:197:24) …
Run Code Online (Sandbox Code Playgroud)

jquery node.js

1
推荐指数
1
解决办法
2750
查看次数

Rails 3页关键字和描述

我有一个Page带有额外字段keywordsdescriptionSEO 的模型.

如何在Rails中实现SEO功能,meta并在每个页面上添加带有关键字和描述的标签?

ruby-on-rails-3

1
推荐指数
1
解决办法
2321
查看次数

在rails迁移中定义字符

使用Rails迁移创建的所有表和字段都有latin1_swedish_ci整理.因为我的项目使用的是俄语,所以这种校对是不合适的.

是否可以使用迁移utf8_general_ci

PS我的database.yml:

development:
  adapter: mysql2
  encoding: utf8
  collation: utf8_general_ci
  reconnect: false
  database: my_development
  pool: 5
  username: username
  password: 'heavy'
  host: localhost
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-3

1
推荐指数
1
解决办法
3038
查看次数

在没有ActiveRecord的情况下连接到SQL Server

我想从没有ActiveRecord适配器的Rails应用程序连接到SQL Server.

我跟着回答了这个问题.我安装了ruby-odbc gem并从ruby脚本连接到SQL Server没有任何问题.

db = DBI.connect('dbi:ODBC:ACUMENSERVER', 'login', 'password')
select = db.prepare('SELECT * from customer WHERE id = 1')
select.execute
while rec = select.fetch do
puts rec.to_s
end
db.disconnect
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在Rails控制器中执行此代码时,会发生错误:

{:forgery_whitelisted?=>"it is just an alias for 'get?' now, update your code"} is not a symbol

/home/user/.rvm/gems/ruby-1.9.2-p136/gems/deprecated-2.0.1/lib/deprecated.rb    176 in `instance_method'
/home/user/.rvm/gems/ruby-1.9.2-p136/gems/deprecated-2.0.1/lib/deprecated.rb    176 in `block in '
Run Code Online (Sandbox Code Playgroud)

据我所知,deprecated宝石是必需的dbi.当我尝试安装最新版本的deprecated打印机时: Bundler could not find compatible versions for gem "deprecated": dbi depends on deprecated …

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

1
推荐指数
1
解决办法
1298
查看次数

Git:无法基于多个分支

当我尝试拉取单个分支并对其重新设置基础时,git失败Cannot rebase onto multiple branches

我浏览了现有的问题,所有这些问题都建议指定分支以避免错误。就我而言,它仍然失败:

$ git pull --rebase origin master
From github.com:xxx/yyy
 * branch            master     -> FETCH_HEAD
Cannot rebase onto multiple branches
Run Code Online (Sandbox Code Playgroud)

运行该命令2-3次会有所帮助,并且存储库将被拉出。

我的git配置:

[color]
        ui = true
[core]
        pager = less -r
        autocrlf = input
        excludesfile = /Users/kir/.gitignore_global
        editor = /usr/bin/vim
[push]
        default = simple
[filter "lfs"]
        clean = git-lfs clean %f
        smudge = git-lfs smudge %f
        required = true
Run Code Online (Sandbox Code Playgroud)

Git版本:2.7.2(Brew的最新版本)

git

1
推荐指数
1
解决办法
2154
查看次数