获取TypeError-尝试保存时没有将Symbol隐式转换为Integer

问题描述

我正在将RoR API应用程序从Rails 3升级到Rails6。在其中一种形式中,保存时出现TypeError - no implicit conversion of Symbol into Integer错误

这是我定义的参数:

def narrative_params
  name_params = (params[:narrative] || {})[:name].keys
  description_params = (params[:narrative] || {})[:description].keys
  params.require(:narrative).permit(:support_url,:guest_access_allowed,:disable_navigation,:disable_new_window,:enable_social_sharing,:customer_id,:user_id,:support_url,narrative_image_ids: [:_id],sub_groups_id: [:_id],template_id: [:_id],name: name_params,description: description_params)
end

这是创建方法

def create
  @narrative = Narrative.new(narrative_params)
  @narrative.user_id = @current_user._id
  
  # If no path_slug was sent or it was blank,find a unique one
  if @narrative.name and @narrative.path_slug.blank?
    @narrative.path_slug = SlugGenerator.get_unique_path_slugs(@narrative,@narrative.name_translations)
  end
  authorize @narrative

  if @narrative.save!
    if params[:container_id]
      populate_narrative_timelines_from_container(params[:container_id])
    end
    render json: @narrative.attributes.except("_slugs"),status: :created
  else
    puts @narrative.errors.inspect
    render json: @narrative.errors,status: :unprocessable_entity
  end
end

SlugGenerator:

class SlugGenerator
  def self.get_unique_path_slugs(type_instance,localized_strings)
    unique_path_slugs = {}
    localized_strings.keys.each do |key|
      unique_path_slugs[key] = Mongoid::Slug::UniqueSlug.new(type_instance).find_unique(localized_strings[key])
    end
    unique_path_slugs
  end 
end

数据已保存到数据库,但是save方法返回此错误。我花了很多时间在这上面,我不明白我在这里想念的是什么。请帮忙。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)