Ruby on rails Rails不保存修改的属性
我正在写一个降价博客,我想用FrontMatter来定义元数据,比如文章标题。此前端内容是降价字段的一部分,并在控制器的创建操作中解析。 我面临的问题是,我的控制器拒绝保存修改的属性。我试着将其转化为一种模型方法,但之前的动作不起作用。我还尝试了Ruby on rails Rails不保存修改的属性,ruby-on-rails,activerecord,markdown,yaml-front-matter,Ruby On Rails,Activerecord,Markdown,Yaml Front Matter,我正在写一个降价博客,我想用FrontMatter来定义元数据,比如文章标题。此前端内容是降价字段的一部分,并在控制器的创建操作中解析。 我面临的问题是,我的控制器拒绝保存修改的属性。我试着将其转化为一种模型方法,但之前的动作不起作用。我还尝试了属性\u will\u change方法在我的模型中没有成功。 我没有主意,所以任何帮助都将不胜感激 出于某种原因,public属性按预期保存,但其余属性则不按预期保存 确保fm变量包含值(工作正常) 尝试在保存操作之前将其移动到模型中 我还尝试删除|
属性\u will\u change代码>方法在我的模型中没有成功。
我没有主意,所以任何帮助都将不胜感激
- 出于某种原因,
public
属性按预期保存,但其余属性则不按预期保存
- 确保fm变量包含值(工作正常)
- 尝试在保存操作之前将其移动到模型中
- 我还尝试删除
| |=
并用常规=
赋值替换它们
后期控制器创建
def create
@post = Post.new(post_params)
@post.public = true
@post.user = User.first
@post.word_count = @post.markdown.scan(/[\w-]+/).size
fm, content = YAML::FrontMatter.extract(@post.markdown)
@post.title_will_change!
@post.title ||= fm[:title].to_s
@post.subtitle ||= fm[:subtitle]
@post.abstract ||= fm[:abstract]
@post.video_token ||= fm[:video_token]
@post.slug ||= fm[:slug]
@post.seo_keywords = fm[:seo_keywords]
if @post.image
@post.image_id = fm[:image]
end
cat = Category.find_by_name(fm[:category])
if cat.present?
@post.category = cat
else
@post.category = Category.create(name: fm[:category])
end
new_markdown = @post.markdown.gsub(/(---\n(?:.*: '.*'\n)*---)/, '')
@post.markdown = new_markdown
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render :show, status: :created, locataion: @post }
else
format.html { render :new }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
我用符号而不是字符串访问了fm
变量。。。这就是问题所在。非常烦人。我用符号而不是字符串访问了fm
变量。。。这就是问题所在。很烦人