J'avais du mal à formater le created_at généré par sql, donc une note sur la façon de l'implémenter
Créez une table.
table.sql
create table todos
(
id integer PRIMARY key,
body text,
created_at
);
Utilisez l'enregistrement actif pour lier la table todos créée précédemment à l'objet.
tlist.rb
class Todos < ActiveRecord::Base
validates :body, presence: true
end
Stockez l'objet dans une variable d'instance.
tlist.rb
get '/' do
@todos = Todos.all
erb :index
end
Essayez d'afficher l'heure.
index.erb
<div class="user_box">
<p class="user_name">Shuto</p>
<ul>
<% @todos.where(users_userName: "Shuto").each do |todo|%>
<li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
<div class="one">
<%= Rack::Utils.escape_html(todo.body)%>
</div>
<div class="time">
<%= todo.created_at%>
<span class="delete">[x]</span>
</div>
</li>
<% end%>
</ul>
</div>
Quand je l'ai exécuté, il y a des parties inutiles, donc je veux le formater.
Après enquête, il semble qu'il puisse être formaté avec la méthode strftime. Appliquez et exécutez la méthode.
index.erb
<div class="user_box">
<p class="user_name">Shuto</p>
<ul>
<% @todos.where(users_userName: "Shuto").each do |todo|%>
<li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
<div class="one">
<%= Rack::Utils.escape_html(todo.body)%>
</div>
<div class="time">
<%= todo.created_at.strftime("%Y/%m/%d %H:%M:%S")%>
<span class="delete">[x]</span>
</div>
</li>
<% end%>
</ul>
</div>
J'étais en colère que ce soit une chaîne de caractères.
Il semble qu'il soit nécessaire de le convertir en autre chose qu'une chaîne de caractères, alors essayez de le convertir en type de date.
index.erb
<div class="user_box">
<p class="user_name">Shuto</p>
<ul>
<% @todos.where(users_userName: "Shuto").each do |todo|%>
<li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
<div class="one">
<%= Rack::Utils.escape_html(todo.body)%>
</div>
<div class="time">
<%= todo.created_at.to_date.strftime("%Y/%m/%d %H:%M:%S")%>
<span class="delete">[x]</span>
</div>
</li>
<% end%>
</ul>
</div>
La date est correcte, mais l'heure est incorrecte.
Convertissez-le en type d'heure et exécutez-le.
index.erb
<div class="user_box">
<p class="user_name">Shuto</p>
<ul>
<% @todos.where(users_userName: "Shuto").each do |todo|%>
<li data-id = "<%= todo.id%>" data-token = "<%= Rack::Csrf.csrf_token(env)%>">
<div class="one">
<%= Rack::Utils.escape_html(todo.body)%>
</div>
<div class="time">
<%= todo.created_at.to_time.strftime("%Y/%m/%d %H:%M:%S")%>
<span class="delete">[x]</span>
</div>
</li>
<% end%>
</ul>
</div>
Il était affiché correctement.
Vous devez savoir quel format il est donné lorsque vous rencontrez une erreur.
Le prototype de cette application est basé sur Introduction à sinatra de l'installation dot.
Recommended Posts