指标/ AbcSize:分配分支创建的条件大小过大。 [15.17 / 15]

时间:2019-06-01 19:24:33

标签: controller ruby-on-rails-5.2 rubocop

我希望直接从控制器调用我的JS方法,但出现以下Rubocop错误。

错误:

  

Metrics / AbcSize:用于创建的分配分支条件大小也太大   高。 [15.17 / 15]

控制器:

 def create ...

      def create
        @profile = current_user.profiles.new(modified_profile_params)
        respond_to do |format|
          if @profile.save
            format.html { redirect_to profiles_path }
            format.js { render js: "Helpers.SearchForm.AfterSearchSubmit();" }
          else
            format.html { render action: "new" }
            format.js {
              render js:
                         "Helpers.Bootstrap.Modal.init(
                         'Title',
                         'message','ok',
                         '',
                         '#oldmodal',
                         Helpers.SearchForm.AfterSearchSubmit
                         );"
            }
          end
        end
      end

为解决此问题,我尝试了以下操作:

def limit_modal_javascript
           {
                  render js:
                             "Helpers.Bootstrap.Modal.init(
                             'Title',
                             'message','ok',
                             '',
                             '#oldmodal',
                             Helpers.SearchForm.AfterSearchSubmit
                             );"
                }
  end

但是,然后在运行时出现以下错误:

  

语法错误,意外的tLABEL,预期为do或'{'或'('{   js:

1 个答案:

答案 0 :(得分:0)

您可以通过在render方法中将{移动到打开limit_modal_javascript之前来解决语法错误。

但是,有更好的方法来构造它。您可以将其移动到模板中,而不是在控制器中包含JavaScript。 app/views/products/create_succeeded.js。然后,您可以使用以下命令从控制器进行渲染:

format.js { render "products/create_succeeded" }