Categories
Rails

Setting ActionText Rich Text values for Polymorphic models in Rails 7 in the Console/IRB

Let’s say you have a polymorphic model called Notes that you will be assigning to Projects and Authors, and Notes have a title and content.
Once you’ve edited the app/models/author.rb and app/models/project.rb to both have:

has_many :notes, as: :notable

And inside of app/models/note.rb you have:

belongs_to :notable, polymorphic: true
has_rich_text :content

(also, make sure you’ve done bin/rails action_text:install) then in rails console you should be able to run:

n = Project.first.notes.create
n.content.body = "<p>Some body content</p>"
n.title = "Note Title"
n.save

So the not totally obvious part is just using PolymorphicModel.your_actiontext_field.body. My first time around I named the actiontext field body, so then I had to search for body.body which was just too ugly, so I changed it to content.