2

Engageのインストールに取り組んでいます!

ここにあるインストール手順に従いました:http://engagecsm.com/readme

私が行ったインストール手順:

  1. エンゲージを追加!アプリケーションのGemfileに:gem'engagecsm'。
  2. インストール:バンドルインストール。
  3. ジェネレーターを実行します。railsgenerateengageUser。
  4. 移行を実行します:rakedb:migrate。

これで、localhost:3000/engageに移動できます

行った結果の写真

これが表示されるものです:

これはエンゲージの写真です! フォーラムでは、使用するデータを入力して新しいトピックを作成しました。 これは

さて、「トピックの作成」を押しても、サイトでは何も起こりません。Railsサーバーコンソールを見ると、次のことがわかります:(ここで見やすくhttp://i.stack.imgur.com/xKBER.png、下部にある完全なスタックトレース)

POSTを開始しました

だから私はグーグルを始めます、そして私はこのようなものを見ます:

すでにattr_accessible:userをユーザーモデルに追加しましたが、機能しませんでした。

これが私のユーザーモデルです:

class User <ActiveRecord :: Base include Engage :: Extensions :: User has_many:resources has_many:resource_views、:class_name =>'UserResourceView' has_many:viewed_resources、:through =>:resource_views、:source =>:resource has_many:evaluations、クラス名:

また、Engageモデルなどにアクセスする方法がわかりません。次のディレクトリを参照してください。

私のディレクトリのリスト:コントローラー、ヘルパー、モデル、ビュー。 いずれもエンゲージ固有のものではありません。 Engageのコントローラーなどがどこにあるのかわかりませんでした。 宝石の中にあります。

誰かがこれを修正する方法を知っていますか?その他の情報が必要な場合は、教えてください。スクリーンショットを提供します。

どんな助けでも大歓迎です。ありがとうございました!

編集#1-アプリケーションコントローラーの画像と完全なスタックトレースを追加する

これは私がEngageで何でも見ることができる唯一の場所です!コントローラー内(現時点ではユーザーコントローラーはありません)

application_controller.rbファイル。 class ApplicationController <ActionController :: Base include Engage :: Extensions :: Helpers secure_from_forgery end

完全なスタックトレースは次のとおりです。

POSTを開始しました SQL(0.9ms)INSERT INTO

activesupport(3.2.11)lib / active_support / callbacks.rb:215:in <code> block in _conditional_callback_around_4085'activesupport(3.2.11)lib / active_support / callbacks.rb:326:in </ code> around' activesupport(3.2 .11)lib / active_support / callbacks.rb:310:in <code> _callback_around_127'activesupport(3.2.11)lib / active_support / callbacks.rb:214:in </ code> _conditional_callback_around_4085' activesupport(3.2.11)lib / active_support / callbacks.rb:414:in <code> _run__2010401100414174750__process_action__2035169522325419882__callbacks'activesupport(3.2.11)lib / active_support / callbacks.rb:405:in </ code> __ run_callback' activesupport(3.2.11)lib / active_support / callbacks.rb :385:in <code> _run_process_action_callbacks'activesupport(3.2.11)lib / active_support / callbacks.rb:81:in </ code>run_callbacks'actionpack(3.2.11)lib / abstract_controller / callbacks.rb:17:in <code> process_action' actionpack(3.2.11)lib / action_controller / metal / rescue.rb:29:in </ code> process_action'actionpack (3.2.11)lib / action_controller / metal / Instruments.rb:30:in <code> block in process_action'activesupport(3.2.11)lib / active_support / notification.rb:123:in </ code> block in Instrument' activesupport(3.2.11)lib / active_support / Notifications / instrumenter.rb:20:in <code> Instruments'activesupport(3.2.11)lib / active_support / Notifications.rb:123:in </ code> Instruments'アクションパック(3.2 .11)lib / action_controller / metal / Instruments.rb:29:in <code> process_action'actionpack(3.2.11)lib / action_controller / metal / params_wrapper.rb:207:in </ code> process_action'activerecord(3.2.11)lib / active_record / railties / controller_runtime.rb:18:in <code> process_action'actionpack(3.2.11)lib / abstract_controller / base.rb:121:in </ code> process' actionpack(3.2 .11)lib / abstract_controller / rendering.rb:45:in <code> process'actionpack(3.2.11)lib / action_controller / metal.rb:203:in </ code> dispatch' actionpack(3.2.11)lib / action_controller / metal / Rack_delegation.rb:14:in <code> dispatch'actionpack(3.2.11)lib / action_controller / metal.rb:246:in </ code> block in action' actionpack(3.2.11)lib / action_dispatch /routing/route_set.rb:73:in <code> call'actionpack(3.2.11)lib / action_dispatch / routing / route_set.rb:73:in </ code> dispatch' actionpack(3.2.11)lib / action_dispatch / routing / route_set.rb:36:in <code> call'journey(1.0。4)lib / journal / router.rb:68:in </ code> block in call'journey(1.0.4)lib / journal / router.rb:56:in <code> each'journey(1.0.4)lib /journey/router.rb:56:in</code>call'actionpack(3.2.11)lib / action_dispatch / routing / route_set.rb:601:in <code> call' railties(3.2.11)lib / rails / engine.rb:479:in </ code> call'railties(3.2.11)lib / rails / railtie / configureurable.rb:30:in <code> method_missing'journey(1.0.4)lib / journal / router.rb :68:in </ code> block in call'journey(1.0.4)lib / journal / router.rb:56:in <code> each'journey(1.0.4)lib / journal / router.rb:56: in </ code> call'actionpack(3.2.11)lib / action_dispatch / routing / route_set.rb:601:in <code> call' warden(1.2.1)lib / warden / manager.rb:35:in </ code> block in call'warden(1.2.1)lib / warden / manager.rb:34:in <code> catch'warden(1.2.1)lib / warden / manager.rb:34:in </ code> call' actionpack(3.2.11)lib / action_dispatch / Middleware / best_standards_support.rb:17:in <code> call'ラック(1.4.3)lib / Rack / etag.rb:23:in </ code> call'ラック(1.4.3)lib / Rack / conditionalget.rb:35:in <code> call ' actionpack(3.2.11)lib / action_dispatch / middleware / head.rb:14:in </ code> call'actionpack(3.2.11)lib / action_dispatch / Middleware / params_parser.rb:21:in `call'11)lib / action_dispatch / Middleware / head.rb:14:in </ code> call'actionpack(3.2.11)lib / action_dispatch / Middleware / params_parser.rb:21:in `call'11)lib / action_dispatch / Middleware / head.rb:14:in </ code> call'actionpack(3.2.11)lib / action_dispatch / Middleware / params_parser.rb:21:in `call'

actionpack(3.2.11)lib / action_dispatch / middleware / flash.rb:242:in <code> call'rack(1.4.3)lib / Rack / session / abstract / id.rb:210:in </ code> context 'ラック(1.4.3)lib / Rack / session / abstract / id.rb:205:in <code> call' actionpack(3.2.11)lib / action_dispatch / middleware / cookies.rb:341:in </ code> call'activerecord(3.2.11)lib / active_record / query_cache.rb:64:in <code> call' activerecord(3.2.11)lib / active_record / connection_adapters / abstract / connection_pool.rb:479:in </ code> call 'actionpack(3.2.11)lib / action_dispatch / middleware / callbacks.rb:28:in <code> block in call' activesupport(3.2.11)lib / active_support / callbacks.rb:405:in </ code> _run__4377122496359715927__call__4128007891844716680__callbacks ' activesupport(3.2.11)lib / active_support / callbacks.rb:405:in <code>__run_callback'activesupport(3.2.11)lib / active_support / callbacks.rb:385:in </ code> _run_call_callbacks' activesupport(3.2.11)lib / active_support / callbacks.rb:81:in <code> run_callbacks'アクションパック(3.2 .11)lib / action_dispatch / Middleware / callbacks.rb:27:in </ code> call'actionpack(3.2.11)lib / action_dispatch / Middleware / reloader.rb:65:in <code> call' actionpack(3.2。 11)lib / action_dispatch / Middleware / remote_ip.rb:31:in </ code> call'actionpack(3.2.11)lib / action_dispatch / middleware / debug_exceptions.rb:16:in <code> call' actionpack(3.2.11 )lib / action_dispatch / Middleware / show_exceptions.rb:56:in </ code> call'railties(3.2.11)lib / rails / Rack / logger.rb:32:in <code> call_app' railties(3.2.11) lib / rails / Rack / logger.rb:16:in </ code> block in call 'activesupport(3.2.11)lib / active_support / tags_logging.rb:22:in <code> tagsed'railties(3.2.11)lib / rails / Rack / logger.rb:16:in </ code> call' actionpack(3.2 .11)lib / action_dispatch / Middleware / request_id.rb:22:in <code> call'ラック(1.4.3)lib / Rack / methodoverride.rb:21:in </ code> call'ラック(1.4.3) lib / Rack / runtime.rb:17:in <code> call'activesupport(3.2.11)lib / active_support / cache /strategy / local_cache.rb:72:in </ code> call' Rack(1.4.3)lib /rack/lock.rb:15:in <code> call'actionpack(3.2.11)lib / action_dispatch / Middleware / static.rb:62:in </ code> call' railties(3.2.11)lib / rails / engine.rb:479:in <code> call'railties(3.2.11)lib / rails / application.rb:223:in </ code> call' Rack(1.4.3)lib / Rack / content_length.rb:14 :in <code> call 'railties(3.2.11)lib / rails / Rack / log_tailer.rb:17:in </ code> call'ラック(1.4.3)lib / Rack / handler / webrick.rb:59:in <code> service' / Users / johndoe / .rbenv / versions / 1.9.3-p327-perf / lib / ruby​​ / 1.9.1 / webrick / httpserver.rb:138:in </ code> service'/Users/johndoe/.rbenv/versions/ 1.9.3-p327-perf / lib / ruby​​ / 1.9.1 / webrick / httpserver.rb:94:in <code> run'/Users/johndoe/.rbenv/versions/1.9.3-p327-perf/lib/ ruby / 1.9.1 / webrick / server.rb:191:in </ code> block in start_thread ''/Users/johndoe/.rbenv/versions/1.9.3-p327-perf/lib/ruby/1.9.1/webrick/server.rb:191:in</code> blockinstart_thread'を実行します'/Users/johndoe/.rbenv/versions/1.9.3-p327-perf/lib/ruby/1.9.1/webrick/server.rb:191:in</code> blockinstart_thread'を実行します

編集#2-エンゲージ環境を追加します:

また、Devise(および私が信じているOmniAuth ...)がインストールされています。したがって、「current_user」がありますが、「username」または「email」メソッドがあるかどうかはわかりません。ただし、Deviseなどに標準で付属している場合を除きます。 これはengage.rbファイルです。 Engage.configure do | config |  config.layout ='application' config.user_model ='User' config.mailer_sender ='engage@knowledgethief.com' config.internal_authentication = false config.current_user_method = Proc.new {current_user} config.login_link = {:path =>: new_user_session_path、:opts => {:remote => true}} config.username_method = Proc.new {username} config.email_method = Proc.new {email} end

編集#3-Geoffが提案したように、topics_controllerの46行目を調べました。その行は次のとおりです。

@ topic.votes.create(:user => Engage_current_user)

4

4 に答える 4

1

提供された情報に基づいて、何が起こっているのかわからないのではないかと思いますが、発生しているエラーについて少し説明することはできます。

トレースの最後の非ライブラリ行は次のとおりです。

Engagecsm(1.0.8)app / controllers / Engage / topics_controller.rb:46:「作成」で

このコードはおそらくデフォルトのgemパスにあります。おそらく、/usr/lib/ruby/gemsまたは/home/user_name/.gem/ruby*nixを使用している場合。

そのコード行の処理中に、一括割り当てセキュリティエラーが発生することがあります。

そのコード行を見て、どのモデルがヒットしているかを確認すると役立つ場合があります。そのコード行をここに投稿しないでください。Engageのライセンス!は標準のオープンソースのものではないようです。ここに投稿すると、ライセンスに違反している可能性があります。私は非常に間違っているかもしれませんが、申し訳ありませんよりも安全です。

一括割り当てのセキュリティであなたをつまずかせる可能性のある2つの変数があります。それらは属性と役割です。適切なモデルに追加attr_accessible :userすると、デフォルトの役割を使用している場合にのみ役立ちます。ロールを使用している場合は、:adminを追加する必要がありますattr_accessible :user, as: :adminUserあなたのモデルにはの属性がないと思う:userので、おそらくどこかに追加する必要があります。

あなたが何を間違えたのかを推測しなければならなかったとしたら、あなたはここのセキュリティガイドに従ったのではないかと思います。

http://guides.rubyonrails.org/security.html

そのガイドでは、デフォルトですべてをホワイトリストに登録するように構成を設定することを提案しています。

config.active_record.whitelist_attributes = true

あなたがこれをして従事するなら!あなたが見ているエラーを説明するMassAssignmentサポートで書かれていませんでした。

申し訳ありませんが、あなたの問題を確実に説明することはできませんが、それでもお役に立てば幸いです。

于 2013-01-20T05:13:27.427 に答える
1

問題を確認スタックトレースするのはto​​pices_controllerにあります。したがって、モデルにに追加:user_idする必要があることを意味している可能性があります。attr_accessibleEngage/Topic

于 2013-01-20T18:15:34.693 に答える
1

それはエンゲージの1つです!ここの開発者。Engageには2つの問題があることがわかります。上記の。

最初の解決策(あなたが解決したものattr_accessible :user)を見つけたので、Rubygemsのアップデートをすぐに期待してください。

2番目(トピックが実際にインデックスページに表示されないという事実)は、カンカンの宝石の変更に関連しています。これに取り組む最善の方法を見つける必要がありますが、簡単な回避策は、次のようにGemfileでcancanバージョンをロックすることですgem 'cancan', '1.6.7'

これらの問題に対処するアップデートがRubygemsで利用可能になる時期をお知らせします。

乾杯!

于 2013-01-21T15:36:23.780 に答える
0

Engage /VoteModelに次の行を追加する必要がありました

attr_accessible :user

これで、「トピックが正常に作成されました」と表示されます。

ただし、リストされているトピックが表示されません。しかし、私は問題のこの部分は終わったと思います。に行くとトピックを見ることができます

http://localhost:3000/engage/topics/1
于 2013-01-21T03:38:00.807 に答える