Ruby on Rails のホームページでこのビデオをフォローしています: https://rubyonrails.org/ 。これらは私のステップです
rails new demo
rails generate scaffold post title:string content:text
rails db:migrate
rails server
http://localhost:3000/
http://localhost:3000/posts
http://localhost:3000/posts/1
http://localhost:3000/posts/1/edit
http://localhost:3000/posts/new
ファイル D:\2024_04_29pp iewspplication.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
<link rel="stylesheet" href="https://cdn.simplecss.org/simple.min.css">
<%= javascript_importmap_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
http://localhost:3000/posts.json http://localhost:3000/posts/2.json
検証
ファイル D:\2024_04_29pp.rb
class Post < ApplicationRecord
validates_presence_of :title
end
rails console
rails c
Post.first
Post.create! title:”From the console”, content: “Nice!”
Post.where(created_at: Time.now.all_day).to_sql
Post.where(created_at: Time.now.all_day)
irb(main):008> Post.where(created_at: Time.now.yesterday.all_day)
irb(main):008> Post.where(created_at: Time.now.yesterday.all_day).to_sql
rails action_text:install
bundle
rails db:migrate
ファイル D:\2024_04_29pp.rb
class Post < ApplicationRecord
validates_presence_of :title
has_rich_text :content
end
ファイル D:\2024_04_29pp iews_form.html.erb
<%= form_with(model: post) do |form| %>
<% if post.errors.any? %>
<div style="color: red">
<h2><%= pluralize(post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% post.errors.each do |error| %>
<li><%= error.full_message %></li>
<% end %>
</ul>
</div>
<% end %>
<div>
<%= form.label :title, style: "display: block" %>
<%= form.text_field :title %>
</div>
<div>
<%= form.label :content, style: "display: block" %>
<%= form.rich_text_area :content %>
</div>
<div>
<%= form.submit %>
</div>
<% end %>
データベースを調べてみました
ソースコード: https://github.com/donhuvy/rails7demo
私の画像が表示されなかったのはなぜですか?それを修正するにはどうすればよいですか?
問題は、列posts.contentをテキストデータ型として作成することです。
アクションテキストはモデルテーブルに列を必要としません。アクション テキストは、record_id 列と Record_type 列による多態性の関連付けを使用して他のモデルと関連付けられるある種のモデルです。
まず、コマンドを使用してアクションテキストのテーブル、スタイル、部分を作成する必要があります(存在しない場合)。
bin/rails action_text:install
私は Rails ジェネレーターは好きではありませんが、最初のコマンドは次のようにする必要があります。
bin/rails g scaffold post title:string content:rich_text
(単なるテキストではなくリッチテキスト)
このコマンドは新しい列を作成せず、モデルやビューなどに has_rich_text 表記を追加するだけです。
「posts.content」列を削除する必要があります
画像を変換する場合は、システム ライブラリ (デフォルトでは libvips) が必要になることにも注意してください。
続きを読む:
https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://edgeguides.rubyonrails.org/action_text_overview.html