問題タブ [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.
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'
エラーが発生する理由と解決方法を教えてください。
編集
この問題は次の方法で解決されました:
- grant_on : model_name: 'Selection' にモデル名を追加します(この場合)
- インスタンス変数が「@」が付いていることを確認してください。'selection = Selection.new(selection_params) ' => ' @selection = Selection.new(selection_params) ' でした。