0

Heroku への最近のデプロイ中に、アプリが動作しなくなりましたが、ローカルでは問題なく動作しています。アプリは Heroku の cedar スタックで実行されています。

Heroku でログを追跡した後、次のエラーを収集しました。

TypeError ([1] is not a symbol):
app/controllers/application_controller.rb:9:in `new_post'

以下は、application_controller.rb のコードです。

class ApplicationController < ActionController::Base
  protect_from_forgery

  before_filter :new_post
  before_filter :new_channel

  def new_post
    @new_post = Post.new
    @select_channels = current_user.channels.all
  end

  def new_channel
    @new_channel = Channel.new
  end

  def after_sign_in_path_for(resource)
    browse_path
  end

end

以下はチャネルのモデルです。

class Channel < ActiveRecord::Base
    attr_accessible :title, :description, :cover_image, :status, :writable, :visibility

    has_one :channel_publication
    has_one :user, :through => :channel_publication

    has_many :channel_subscriptions

    has_many :channel_post_connections

    accepts_nested_attributes_for :channel_publication
    accepts_nested_attributes_for :user

end

この TypeError の原因と、Heroku にデプロイしたときにのみ発生する理由がわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

0

ここで問題を解決することになりました-それはばかげた間違いでした.

データベースに問題がないことを確認するために、Heroku の fork コマンドを使用してアプリをフォークし、サニタイズされた新しい環境とクリーンなデータベースを作成しました。

そこから、同じエラーが持続しましたが、ログはそれがどこにあったかについてより詳細な情報を提供してくれました...そして、データベースに既存のエントリがないオブジェクトをループしていたことが判明しました。

于 2013-09-21T14:04:49.723 に答える