1

完全に新しい Rails 4.2.3 アプリケーション。Gemfile への唯一の変更点は、Spring の削除、dotenv の追加、および ruby​​gems.org で公開されている最新の contentful_rails およびcontentful_model gemです

理由は不明ですが、イニシャライザで定義された構成の詳細は、アプリが起動するまでに失われています。これは同じオブジェクト ( の同じ値ContentfulModel.configuration.object_id) ですが、以前は正しかった値が になりましたnil

README に示されているように、初期化子を追加しました。

$ cat config/initializers/contentful_model.rb 
ContentfulModel.configure do |config|
  byebug
  config.access_token         = ENV['CONTENTFUL_ACCESS_TOKEN']
  config.preview_access_token = ENV['CONTENTFUL_PREVIEW_ACCESS_TOKEN']
  config.space                = ENV['CONTENTFUL_SPACE']
#  config.options              = {
    #extra options to send to the Contentful::Client
#  }
end

そして、1 つのモデル、Category を定義しました。

$ cat app/models/category.rb 
class Category < ContentfulModel::Base
   self.content_type_id = "[category content type string]"
end

Rails コンソールを起動すると、次のようになります。

$ rails c

[1, 9] in /home/trevor/code/chef/www-contentful-rails/config/initializers/contentful_model.rb
   1: ContentfulModel.configure do |config|
   2:   config.access_token         = ENV['CONTENTFUL_ACCESS_TOKEN']
   3:   config.preview_access_token = ENV['CONTENTFUL_PREVIEW_ACCESS_TOKEN']
   4:   config.space                = ENV['CONTENTFUL_SPACE']
   5: #  config.options              = {
   6:     #extra options to send to the Contentful::Client
   7: #  }
   8:   byebug
=> 9: end
(byebug) ContentfulModel.configuration
#<ContentfulModel::Configuration:0x00000005bc7be0 @access_token="[my actual token string]", @entry_mapping={}, @preview_access_token="[my actual preview token string]", @space="[my actual space]">
(byebug) continue
/home/trevor/.rvm/gems/ruby-2.2.2@www-contentful-rails/gems/actionpack-4.2.3/lib/action_dispatch/http/mime_type.rb:163: warning: already initialized constant Mime::JSON                    
/home/trevor/.rvm/gems/ruby-2.2.2@www-contentful-rails/gems/actionpack-4.2.3/lib/action_dispatch/http/mime_type.rb:163: warning: previous definition of JSON was here                       
Loading development environment (Rails 4.2.3)
2.2.2 :001 > ContentfulModel.configuration
 => #<ContentfulModel::Configuration:0x00000005bc7be0 @access_token=nil, @entry_mapping={"[category content type string]"=>Category}, @preview_access_token=nil, @space=nil>                        
2.2.2 :002 > 

gem ソースをふるいにかけ、デバッガーをステップスルーするのに多くの時間を費やしましたが、結果はありませんでした。問題の原因を特定できず、gem 内にあると想定する必要があるため、プロジェクトの問題を GitHub に投稿しました。これをさらにトラブルシューティングする方法についての支援は大歓迎です!

4

1 に答える 1

1

解決策は、数か月前の変更に必要な文書化されていないアプローチを使用することでした。

contentful_rails gemにはcontentful_modelが必要です (逆も同様)。この方法で作成された構成は、contentful_rails が初期化されたときに完全に消去されました。これは、構成が独自の初期化子で行われることを期待していました。

config/initializers/contentful_model.rb を削除したので、 config/initializers/contents_rails.rb ファイルは次のようになります。

ContentfulRails.configure do |config|
  config.authenticate_webhooks = true # false here would allow the webhooks to process without basic auth
  config.webhooks_username     = ENV['CONTENTFUL_WEBHOOK_USERNAME']
  config.webhooks_password     = ENV['CONTENTFUL_WEBHOOK_PASSWORD']

  config.access_token          = ENV['CONTENTFUL_ACCESS_TOKEN']
  config.preview_access_token  = ENV['CONTENTFUL_PREVIEW_ACCESS_TOKEN']
  config.space                 = ENV['CONTENTFUL_SPACE']
  config.contentful_options    = {
    #extra options to send to the Contentful::Client
  }
end

注目すべきは、config.options はもはや問題ではないということです。config.contentful_options です。

于 2015-07-24T18:33:32.813 に答える