小编Que*_*fer的帖子

在Rails控制台中打印PG结果对象

我在rails控制台中做了一些基本的SQL查询.当我查询我的postgreSQL数据库时,结果是一个PG Result对象,如下所示:

#<PG::Result:0x007f26cac82010 status=PGRES_TUPLES_OK ntuples=1 nfields=1 cmd_tuples=1>
Run Code Online (Sandbox Code Playgroud)

我的查询如下所示:

sql = "SELECT COUNT (DISTINCT Business_id) FROM applications"
result = ActiveRecord::Base.connection.execute(sql)
Run Code Online (Sandbox Code Playgroud)

我目前正在进行基本的COUNT查询,我希望看到计数结果.

如何查看PG Result对象内的数据?

sql postgresql ruby-on-rails ruby-on-rails-4

9
推荐指数
2
解决办法
6233
查看次数

Rails 4的Bootstrap 3模态错误

我正在尝试显示包含对象信息的模态.我正在运行Rails 4和Bootstrap 3.我在SO上关注了一个示例并收到错误:

Sprockets::FileNotFound in Gifts#index
couldn't find file 'bootstrap-modal'
Run Code Online (Sandbox Code Playgroud)

我的Gemfile看起来像这样:

gem 'rails', '4.0.0'
gem 'bootstrap-sass', '3.0.2.0'
gem 'activeresource'

group :assets do
    gem 'jquery-ui-rails'
    gem 'jquery-modal-rails'
end 

group :development, :test do
    gem 'sqlite3', '1.3.8'
    gem 'rspec-rails', '2.13.1'
end

group :test do
    gem 'selenium-webdriver', '2.35.1'
    gem 'capybara', '2.1.0'
    gem 'factory_girl_rails', '4.2.1'
end

gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
gem 'devise'
gem 'activeadmin', github: 'gregbell/active_admin'
gem 'paperclip'
gem 'aws-sdk'
gem …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails twitter-bootstrap ruby-on-rails-4

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

使用Figaro和Secrets.yml管理Env变量

我有一个rails 4.1应用程序,我正在尝试组织我的env变量.截至目前,我的config /文件夹中有一个secrets.yml文件.我还安装了figaro宝石.我的目标是将所有我的env变量放在application.yml(未检入git)文件中,然后使用secrets.yml(签入git)文件将变量从appliation.yml映射到应用程序.当我使用Rails.application.secrets打印文件时它只显示如下所示的哈希:

:salesforce_username=>"ENV['SALESFORCE_USERNAME']"
Run Code Online (Sandbox Code Playgroud)

我的所有外部服务都没有使用此env变量设置.当我查看跟踪时,实际的ENV ['ACCOUNT_ID']正在请求中传递,如下所示:

v2/accounts/ENV['ACCOUNT_ID']/envelopes
Run Code Online (Sandbox Code Playgroud)

另外,我无法在我的应用程序中使用Rails.application.secrets.account_id访问我的env变量.

secrets.yml

development:
  account_id: <%= ENV['ACCOUNT_ID'] %>
Run Code Online (Sandbox Code Playgroud)

aplication.yml

development:
  ACCOUNT_ID: "123456"
Run Code Online (Sandbox Code Playgroud)

application.rb中

# preload tokens in application.yml to local ENV
config = YAML.load(File.read(File.expand_path('../application.yml', __FILE__)))
config.merge! config.fetch(Rails.env, {})
config.each do |key, value|
  ENV[key] = value.to_s unless value.kind_of? Hash
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails environment-variables ruby-on-rails-4 figaro-ruby

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

具有外部数据源的Rails 4应用程序中的授权

我正在构建一个使用Salesforce作为数据存储后端的应用程序.这意味着除了User之外,我的数据库中没有模型.我无法使用传统的授权解决方案,因为它们需要我访问rails模型.

我正在构建的应用程序需要围绕用户的某些权限.用户有两种状态:用户:未激活用户:已激活

我将从Salesforce触发用户状态的更改.

我有需要根据用户状态保护的视图.我不确定处理这个问题的最可扩展的方法是用户模型中的简单状态列,并且在我的视图中只有<%= current_user.state =="激活"%>或者是否有更好的解决方案?

谢谢

authorization ruby-on-rails salesforce ruby-on-rails-4

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

在整个rails应用程序中使用一个客户端实例进行外部服务

此问题不是关于特定的外部服务,而是关于在整个应用程序中使用相同的对象以防止在每次调用时重新进行身份验证.我正在构建一个ruby on rails应用程序,它通过restforce连接到Salesforce REST API .截至目前,我在每个控制器内部创建了一个restforce对象(客户端)的实例.这会大大降低我的应用程序速度,因为它会在每次页面加载时对salesforce的api进行身份验证.

截至目前,我有一个初始化文件,用于创建包含凭据(oauth令牌等)的restforce对象.我想在整个应用程序中使用该客户端实例来加快速度.至少,我想在每个控制器中进行一次身份验证,这样每个方法都可以访问一个经过身份验证的对象实例.

restforce.rb(初始化文件) 需要'restforce'

class RestforceClient
  def restforce
    client = Restforce.new :username => ENV['SALESFORCE_USERNAME'],
      :password       => ENV['SALESFORCE_PASSWORD'],
      :security_token => ENV['SALESFORCE_SECURITY_TOKEN'],
      :client_id      => ENV['SALESFORCE_CLIENT_ID'],
      :client_secret  => ENV['SALESFORCE_CLIENT_SECRET'],
      :host           => ENV['SALESFORCE_HOST'],
      :debugging      => ENV['TRUE']
  end
end
Run Code Online (Sandbox Code Playgroud)

控制器示例

def foobar
  @user = current_user
  client = Restforce.new
  @fetchdata = client.query("select X from y")
end

def barfoo
  @user = current_user
  client = Restforce.new    
  @fetchdata = client.query("select X from Z")
end
Run Code Online (Sandbox Code Playgroud)

上面的控制器说明了我遇到的问题.当我加载foobar视图时,它会创建一个新的restforce实例.然后当我加载barfoo视图时,它会创建一个新的restforce实例.反正在整个应用程序中是否有一个restforce实例,甚至更好?

ruby ruby-on-rails salesforce ruby-on-rails-4

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

无法推送到不合格的目的地:部署到演示分支时掌握

我正在尝试为我的应用程序创建一个演示分支,供应商可以在其中登录以了解有关其功能的更多信息。

我有一个主分支,可以在 Heroku 上部署到生产环境。此外,我有一个部署到我的 Heroku 暂存环境的暂存分支。在 Github 应用程序中,我从暂存分支创建了一个名为“演示”的分支。

当我使用 CircleCI 进行部署时,我收到以下错误:

unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.

git push git@heroku.com:foobar-demo.git $CIRCLE_SHA1:master returned exit code 1

error: failed to push some refs to 'git@heroku.com:foobar-demo.git' Action failed: git push git@heroku.com:foobar-demo.git $CIRCLE_SHA1:master
Run Code Online (Sandbox Code Playgroud)

我的 circle.yml 如下所示:

deployment:
  staging:
    branch: staging
    commands:
      - heroku maintenance:on --app …
Run Code Online (Sandbox Code Playgroud)

git heroku circleci

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