问题描述
我正在将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 (将#修改为@)