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に何か問題がありますよね?