この記事 https://qiita.com/goppy001/items/791c946abdb41c9495bb を参考にハッシュタグ機能を作ったのですが以下のコードを加えることでなぜか投稿ができなくなってしまいます。
いろいろ試した見たのですが、
hashtags = self.content.scan(/[##][\w\p{Han}ぁ-ヶヲ-゚ー]+/) hashtags.uniq.map do |hashtag| tag = Hashtag.find_or_create_by(hashname: hashtag.downcase.delete('#')) post.hashtags << tag end
を消すことで一応投稿はできるようになりましたがこうしてしまうとハッシュタグのリンクをクリックしてもハッシュタグのページが表示できなくなってしまいます。
また、投稿の削除ボタンを押してもActiveRecord::StatementInvalid in PostsController#destroy SQLite3::SQLException: no such column: hashtags_posts.post_id: DELETE FROM "hashtags_posts" WHERE "hashtags_posts"."post_id" = ?
と出てしまうようになってしまいました。
post.rb
Ruby
1after_create do 2 post = Post.find_by(id: self.id) 3 hashtags = self.content.scan(/[##][\w\p{Han}ぁ-ヶヲ-゚ー]+/) 4 hashtags.uniq.map do |hashtag| 5 tag = Hashtag.find_or_create_by(hashname: hashtag.downcase.delete('#')) 6 post.hashtags << tag 7 end 8end 9 10before_update do 11 post = Post.find_by(id: self.id) 12 post.hashtags.clear 13 hashtags = self.content.scan(/[##][\w\p{Han}ぁ-ヶヲ-゚ー]+/) 14 hashtags.uniq.map do |hashtag| 15 tag = Hashtag.find_or_create_by(hashname: hashtag.downcase.delete('#')) 16 post.hashtags << tag 17 end 18end
あなたの回答
tips
プレビュー