Ruby on Rails总是指向本地redis Server

Pra*_*hra 2 ruby ruby-on-rails redis redis-objects

我使用Redis的跟我on Rails应用程序的红宝石,要映射使用Redis的Ruby对象Redis的对象,DM-核心DM-Redis的适配器.以下是代码段

的Gemfile

gem 'redis-objects'
gem "dm-core", "~> 1.2.1"
gem "dm-redis-adapter"
Run Code Online (Sandbox Code Playgroud)

/config/initializers/redis.rb

// LOCAL REDIS SERVER
Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
// REMOTE REDIS SERVER
#Redis.current = Redis.new(:host => '<VM IP>', :port => <VM PORT>, :password => '<PASSWORD>')
Run Code Online (Sandbox Code Playgroud)

Model.rb

DataMapper.setup(:default, {:adapter  => "redis"})

class User
  include Redis::Objects
  include DataMapper::Resource

  include ActiveModel::Validations  
  include ActiveModel::Conversion  

  # datamapper fields, just used for .create
  property :id, Serial
  property :name, String
  property :email, String
  property :des, Text

  def id
    1
  end

end

User.finalize
Run Code Online (Sandbox Code Playgroud)

它适用于本地redis服务器.为什么app始终指向本地redis,即使提供远程主机和端口?

解决:结帐我的答案.

Pra*_*hra 5

根据问题:

// LOCAL REDIS SERVER
Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
// REMOTE REDIS SERVER
#Redis.current = Redis.new(:host => '<VM IP>', :port => <VM PORT>, :password => '<PASSWORD>')
Run Code Online (Sandbox Code Playgroud)

Model.rb

 DataMapper.setup(:default, {:adapter  => "redis"})
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我在User模型中重载了Redis配置.在这种情况下,我还需要在模型中编写远程配置.

DataMapper.setup(:default, {:adapter  => "redis", :host => '<VM IP>', :port => <VM PORT>, :password => '<PASSWORD>'})
Run Code Online (Sandbox Code Playgroud)