3

Rails3.2.3とacts_as_tree1.1.0を使用しています。以前のバージョンのRails3(3.1.1など)でいくつかの異なるプロジェクトにacts_as_treeを問題なく使用してきましたが、このバージョンではまったく機能しません。私が使っているのが3.2.3か何かのせいなのなら、私は確認できませんでした。

これは私が試したことですが、役に立ちませんでした:-いくつかの異なるコントローラーでacts_as_treeを使用する-acts_as_treeのみを使用する(orderステートメントなし)-バンドルインストールとバンドル更新を実行する-parent_idが存在し、整数であることを再確認する

まず、これを試したとき、最初に試しました。

undefined method `acts_as_tree'

ページをリロードする(そして他に何もしない)と、次のようになります。

undefined method `key?' for nil:NilClass

次にサーバーを再起動すると、起動に失敗し(アプリがクラッシュして起動しません)、次のエラーが発生しました。

/Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:68:in `require': /Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: odd number list for Hash (SyntaxError)
        foreign_key:   "parent_id",
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: syntax error, unexpected ':', expecting '}'
        foreign_key:   "parent_id",
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: syntax error, unexpected ',', expecting kEND
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:79: Can't assign to nil
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:80: syntax error, unexpected ':', expecting '='
        counter_cache: nil,
                      ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:80: Can't assign to nil
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:81: syntax error, unexpected ':', expecting '='
        dependent:     :destroy
                  ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:82: syntax error, unexpected '}', expecting kEND
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:86: syntax error, unexpected ':', expecting kEND
      belongs_to :parent, class_name:    name,
                                     ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:87: syntax error, unexpected ':', expecting '='
        foreign_key:   configuration[:foreign_key],
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:88: syntax error, unexpected ':', expecting '='
        counter_cache: configuration[:counter_cache],
                      ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:89: syntax error, unexpected ':', expecting '='
        inverse_of:    :children
                   ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:91: syntax error, unexpected ':', expecting kEND
      has_many :children, class_name:  name,
                                     ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:92: syntax error, unexpected ':', expecting '='
        foreign_key: configuration[:foreign_key],
                    ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:93: syntax error, unexpected ':', expecting '='
        order:       configuration[:order],
              ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:94: syntax error, unexpected ':', expecting '='
        dependent:   configuration[:dependent],
                  ^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:95: syntax error, unexpected ':', expecting '='
        inverse_of:  :parent
                   ^
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:66:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:66:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler.rb:119:in `require'
    from /Users/Christoffer/Documents/Webbprojekt/rails/Presenttips/config/application.rb:7
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:53:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:53
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap'
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:50
    from script/rails:6:in `require'
    from script/rails:6

これは、Rails3.2.3とacts_as_treeの間に互換性の問題があると推測させます。しかし、これを確認する方法はわかりません。

どのようなオプションがありますか?Rails 3.2.3を使用する必要はありませんが、3.1.1にダウングレードした場合。(私が試した)私はもっと悪いように見える他の問題に遭遇します(「ファイル設定」は同じではないようです)。

だから、私のオプションは何ですか?これも経験したことがありますか?Acts_as_treeに何か問題がありますよね?

4

1 に答える 1

3

2年前からオープンしているようです

2年前にこの問題を開きましたRails2.3.8では動作しません https://github.com/rails/acts_as_tree/issues/1

オプション

Acts_as_tree_rails3gem install acts_as_tree_rails3

また

ネストされたセットhttps://github.com/skyeagle/nested_set

編集:

そうです、新しい場所はhttps://github.com/amerine/acts_as_tree同じ作者です

コメント付き

Rails / ActiveRecordが3.0より古い場合、Ruby1.8またはバージョンはサポートされなくなりました。3.0より前のバージョンのActiveRecordを使用している場合は、 0.1.1を使用してください。

今後は、ActiveRecordとRubyの最新バージョンをサポートするために最善を尽くします

だから彼らはそれらの未解決の問題を気にしませんでした

于 2012-05-30T06:01:58.040 に答える