小编Oko*_*uko的帖子

Ruby on Rails OmniAuth Facebook适用于Heroku上的Live App,但不适用于Cloud9上的Test App

几周来我一直在努力解决这个问题,而我无法弄明白.

我正在管理一个发布到Facebook的Ruby On Rails应用程序.开发环境位于Cloud9 IDE中,实时站点位于Heroku上.该应用程序在Developers.Facebook.com上有一个相应的帐户,其中包含完整的应用程序和与之关联的测试应用程序.

我的Heroku设置与完整的Facebook应用程序完美配合.

问题始于Facebook Test App中的Cloud9设置.每当我尝试通过API连接时,都会收到以下错误:

在此输入图像描述

紧接着是这个错误:

在此输入图像描述

我尝试使用以下选项为我的URL,但似乎没有任何工作:

https://{workspace}-{username}.c9.io/
https://{workspace}-{username}.c9.io:80/
https://{workspace}-{username}.c9.io:8080/
https://{workspace}-{username}.c9users.io/
https://{workspace}-{username}.c9users.io:80/
https://{workspace}-{username}.c9users.io:8080/
Run Code Online (Sandbox Code Playgroud)

这是我的FacebookAccount模型.

class FacebookAccount < ActiveRecord::Base
  belongs_to :user
  has_many :facebook_pages

  if Rails.env.production?
    FACEBOOK_APP_ID = ENV["FACEBOOK_APP_ID"]
    FACEBOOK_SECRET = ENV["FACEBOOK_SECRET"]
  else
    FACEBOOK_APP_ID = "XXXXXXXXXXXXXXX"
    FACEBOOK_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  end

  def self.from_omniauth(auth)
    oauth = Koala::Facebook::OAuth.new(FACEBOOK_APP_ID, FACEBOOK_SECRET)
    new_access_info = oauth.exchange_access_token_info auth.credentials.token
    new_access_token = new_access_info["access_token"]
    new_access_expires_at = DateTime.now + new_access_info["expires"].to_i.seconds
    where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |facebook_account|
      facebook_account.provider         = auth.provider
      facebook_account.uid              = auth.uid
      facebook_account.name             = auth.info.name
      facebook_account.image            = auth.info.image
      facebook_account.email            = …
Run Code Online (Sandbox Code Playgroud)

facebook ruby-on-rails heroku cloud9-ide omniauth-facebook

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

如何根据用户角色隐藏具有给定类别的WooCommerce产品

我有一个客户端有以下问题:

我需要能够将他们的WooCommerce WordPress网站分为两类.如果用户以a身份登录"Wholeseller",则只会从数据库中提取该"Wholesale"类别中的产品.

但是,如果用户未登录或已登录但未登录"Wholeseller",则只会从数据库中删除没有该"Wholesale"类别的产品.

我想我会在主题functions.php文件中添加这样的东西:

add_filter("some_woocommerce_hook", "wholeseller_filter");

function wholeseller_filter() {
    if (current_user->role == "Wholeseller"){
        //omit products without "wholesale" category while browsing whole site
    } else { 
        //omit products with "wholesale" in the category while browsing whole site.
    }
}
Run Code Online (Sandbox Code Playgroud)

我浏览了StackOverflow,但是我还没找到我正在寻找的内容,或者非常清楚我应该使用哪些关键字进行搜索.

你能为我指出正确的方向吗?

php wordpress categories user-roles woocommerce

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

Rails测试VS Rails 5中的rake测试

因此,我正在尝试Rails 5,并且几乎没有区别,例如可以rails代替和rake等命令使用testdb:*但是,我遇到了一个奇怪的问题:

如果我运行:$ rails test我收到以下错误:

Running via Spring preloader in process 30936
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require': cannot load such file -- minitest/reporters (LoadError)
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /home/ubuntu/workspace/stitched_up_site/test/test_helper.rb:4:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /home/ubuntu/workspace/stitched_up_site/test/controllers/static_pages_controller_test.rb:1:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/test_unit/test_requirer.rb:11:in …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails railstutorial.org ruby-on-rails-5

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

在Ruby中向Array Product函数添加参数

所以我一直在试图寻找解决方案.

我需要一个方法来获取我需要收集产品的任意数量的数组.

1个数组:

return [A, B, C] # => [A, B, C]
Run Code Online (Sandbox Code Playgroud)

2个阵列:

return [A, B, C].product([1, 2, 3]) # => [[A, 1], [A, 2], [A, 3], [B, 1] ... [C, 3]]
Run Code Online (Sandbox Code Playgroud)

3个阵列:

return [A, B, C].product([1, 2, 3,],[x, y, z]) # => [[A, 1, x], [A, 1, y], ... [C, 3, z]]
Run Code Online (Sandbox Code Playgroud)

所以我目前的解决方案是这个案例开关,它功能齐全但不方便.

case options.count
when 1
  options[0].values
when 2
  options[0].values.product(options[1].values)
when 3
  options[0].values.product(options[1].values,
                            options[2].values)
when 4
  options[0].values.product(options[1].values,
                            options[2].values,
                            options[3].values)
end
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一种程序或递归返回未知数量的数组的产品的方法.输出需要像上面的数组一样.

我试过了:

array = options[0].values
options.each_with_index …
Run Code Online (Sandbox Code Playgroud)

ruby arrays

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