如何解决获取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 举报,一经查实,本站将立刻删除。