Lors de la personnalisation de l'échafaudage de rails, j'ai eu du mal avec la sortie en slim, donc la lutte pour le réaliser
・ Les personnes qui utilisent un moteur de gabarit mince pour les rails Ou quiconque veut affiner le moteur de modèle de rails ・ Les personnes qui personnalisent l'échafaudage mais abandonnent la personnalisation de la vue Ou quelqu'un qui veut personnaliser l'échafaudage
Rails 6.0.2.2
ruby 2.6.5
Reportez-vous à cet article et ajoutez une gemme appelée «slim-rails». https://qiita.com/ftyabu/items/42eb62901b6b56a7dc72
Reportez-vous à cet article pour créer un modèle et modifier sa référence. https://qiita.com/akito1986/items/d9f379191fd6b98de955
Je pense que les fichiers suivants ont été créés dans la "Partie 2" ci-dessus. (Peut être différent selon les paramètres)
$ tree lib/templates
lib/templates
├── erb
│ ├── controller
│ │ ├── templates
│ │ │ └── view.html.erb
│ │ └── view.html.erb
│ ├── mailer
│ │ ├── templates
│ │ │ ├── view.html.erb
│ │ │ └── view.text.erb
│ │ ├── view.html.erb
│ │ └── view.text.erb
│ └── scaffold
│ ├── _form.html.erb
│ ├── edit.html.erb
│ ├── index.html.erb
│ ├── new.html.erb
│ ├── show.html.erb
│ └── templates
│ ├── _form.html.erb
│ ├── edit.html.erb
│ ├── index.html.erb
│ ├── new.html.erb
│ └── show.html.erb
└── rails
├── assets
│ ├── javascript.js
│ ├── stylesheet.css
│ └── templates
│ ├── javascript.js
│ └── stylesheet.css
├── controller
│ ├── controller.rb
│ └── templates
│ └── controller.rb
├── helper
│ ├── helper.rb
│ └── templates
│ └── helper.rb
└── scaffold_controller
├── api_controller.rb
├── controller.rb
└── templates
├── api_controller.rb
└── controller.rb
16 directories, 28 files
Changeons ce répertoire "erb" en "slim".
Eh bien, voici la production. J'ai cherché un article utile, mais je ne l'ai pas trouvé. Tout d'abord, jetons un œil au contenu du fichier cible
lib/templates/erb/scaffold/index.html.erb.tt
<p id="notice"><%%= notice %></p>
<h1><%= plural_table_name.titleize %></h1>
<table>
<thead>
<tr>
<% attributes.reject(&:password_digest?).each do |attribute| -%>
<th><%= attribute.human_name %></th>
<% end -%>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
<tr>
<% attributes.reject(&:password_digest?).each do |attribute| -%>
<td><%%= <%= singular_table_name %>.<%= attribute.column_name %> %></td>
<% end -%>
<td><%%= link_to 'Show', <%= model_resource_name %> %></td>
<td><%%= link_to 'Edit', edit_<%= singular_route_name %>_path(<%= singular_table_name %>) %></td>
<td><%%= link_to 'Destroy', <%= model_resource_name %>, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<%% end %>
</tbody>
</table>
<br>
<%%= link_to 'New <%= singular_table_name.titleize %>', new_<%= singular_route_name %>_path %>
Je n'étais pas sûr du symbole <%% =
, il est peut-être familier aux personnes qui utilisent erb régulièrement.
https://qiita.com/ykhirao/items/7ff9ce515a82a6dd24ea
Cet article a présenté <%% =
. Cela évite que le fichier erb ne soit corrompu même si le fichier erb est développé une fois.
Comment puis-je y parvenir avec Slim? ..
Je me suis soudainement souvenu ici. L'existence de ʻerb2 slim`.
Je l'ai essayé, croyant que "erb était écrit correctement et le réparerait". ..
lib/templates/erb/scaffold/index.html.slim
p#notice
- %= notice
h1
= plural_table_name.titleize
table
thead
tr
- attributes.reject(&:password_digest?).each do |attribute|
th
= attribute.human_name
th[colspan="3"]
tbody
| <ruby code="% @
= plural_table_name
| .each do |
= singular_table_name
| | ">
tr
- attributes.reject(&:password_digest?).each do |attribute|
td
- %= <%= singular_table_name
| .
= attribute.column_name
| %>
td
- %= link_to 'Show', <%= model_resource_name
| %>
td
- %= link_to 'Edit', edit_<%= singular_route_name
| _path(
= singular_table_name
| ) %>
td
- %= link_to 'Destroy', <%= model_resource_name
| , method: :delete, data: { confirm: 'Are you sure?' } %>
- % end
br
- %= link_to 'New <%= singular_table_name.titleize
| ', new_
= singular_route_name
| _path %>
Cela ne sent que l'effondrement. .. .. Lol Comme prévu, lorsque j'ai exécuté scaffold, c'était une série d'erreurs de syntaxe. Après tout, il semble plus sûr de le réparer vous-même
Cependant, je voulais commencer avec quelque chose, et quand je faisais des recherches sur diverses choses, tout à coup "Les rails minces devraient jouer avec le gabarit d'échafaudage en premier lieu." J'avais une bonne idée, alors je l'ai vérifiée. Alors ... https://github.com/slim-template/slim-rails était.
slim-rails/lib/generators/slim/scaffold/templates/index.html.slim
h1 Listing <%= plural_table_name %>
table
thead
tr
<% attributes.each do |attribute| -%>
th <%= attribute.human_name %>
<% end -%>
th
th
th
tbody
- @<%= plural_table_name %>.each do |<%= singular_table_name %>|
tr
<% attributes.each do |attribute| -%>
td = <%= singular_table_name %>.<%= attribute.name %>
<% end -%>
td = link_to 'Show', <%= singular_table_name %>
td = link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>)
td = link_to 'Destroy', <%= singular_table_name %>, data: { confirm: 'Are you sure?' }, method: :delete
br
= link_to 'New <%= human_name %>', new_<%= singular_table_name %>_path
En d'autres termes, vous pouvez vous y référer et modifier le modèle à votre guise. Si vous le trouvez, c'est celui-là. Veuillez vivre une merveilleuse vie personnalisée tout en changeant le libellé, en changeant la structure et en expérimentant avec diligence.
Code source en cas de problème Si je l'ai remarqué tôt, il a été résolu en un instant
Recommended Posts