問題タブ [merit-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
83 参照

ruby-on-rails - #create アクションでターゲットが見つかりません

「選択」(メンバーによる製品選択) という名前の最初の作成アクションに Badge_rule を設定しようとしています。

ルール :

アプリ/モデル/メリット/badge_rules.rb

コントローラー「セレクション」はフォルダー「メンバー」にあります: controllers/member/selections_controller.rb

#create アクションでのエラー レポートは次のとおりです。

Merit::Action Load (0.4ms) SELECT "merit_actions".* FROM "merit_actions" WHERE "merit_actions"."processed" = $1 [["processed", "f"]] (0.2ms) BEGIN SQL (0.4ms) UPDATE "merit_actions" SET "processed" = $1, "updated_at" = $2 WHERE "merit_actions"."id" = $3 [["processed", "t"], ["updated_at", "2018-05-07 09: 35:24.776028"]、["id"、30]] (0.5ms) COMMIT [メリット] ターゲットが見つかりません: 初期化されていない定数メンバー::選択。/Users/youguild/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/merit-3.0.1/lib/merit/base_target_finder.rb:13:in `find' 完了 500 内部サーバー211 ミリ秒のエラー (ビュー: 2.8 ミリ秒 | ActiveRecord: 134.4 ミリ秒)

NoMethodError (true:TrueClass のメソッド「メンバー」が未定義):

app/models/merit/badge_rules.rb:53:in `block in initialize'

エラーが発生する理由と解決方法を教えてください。

編集

この問題は次の方法で解決されました:

  1. grant_on : model_name: 'Selection' にモデル名を追加します(この場合)
  2. インスタンス変数が「@」が付いていることを確認してください。'selection = Selection.new(selection_params) ' => ' @selection = Selection.new(selection_params) ' でした。