ruby-on-rails-5 - 寻找更好的方法来重写我凌乱的代码
问题描述
我正在使用 Rails 制作应用程序。我在下面的表格中有 4 个布尔列,如果该列为真,我想显示一条消息。
class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.integer :user_id, null: false, default: 0
t.string :title, null: false, default: ''
t.text :description, null: true
t.boolean :tag_1, null: false, default: false
t.boolean :tag_2, null: false, default: false
t.boolean :tag_3, null: false, default: false
t.boolean :tag_4, null: false, default: false
t.timestamps
end
end
post_controller.rb
def index
@posts = Post.all
end
index.html.erb
<% @posts.each do |post| %>
<ul>
<% if post.tag_1 %>
<li><%= 'tag_name_A' %></li>
<% end %>
<% if post.tag_2 %>
<li><%= 'tag_name_B' %></li>
<% end %>
<% if post.tag_3 %>
<li><%= 'tag_name_C' %></li>
<% end %>
<% if post.tag_4 %>
<li><%= 'tag_name_D' %></li>
<% end %>
<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>
</ul>
<% end %>
因此,如果 'tag_name_A' 是唯一真实的列,则将显示tag_1
,并且将显示 'tag_name_B' 和 'tag_name_D' 如果tag_2
两者tag_4
都为真。(我希望我说清楚了。)
这些代码实际上运行良好,我已经得到了我想要的,但我只是不喜欢它们的编写方式。它看起来很乱,显然不聪明。(你可以说我是新手。)有没有更好的方法来重写它们?
解决方案
推荐阅读
- python - 如何使用它的 url 粘贴图像而不下载它?Python-硒
- python - 为什么我的代码不断返回错误?
- php - Laravel (OctoberCMS) 排序(获取)模型
- r - 在多个条件下更改列值
- javascript - 通过 Javascript 中的成对分隔符拆分字符串,多次出现并排除
- vb.net - 可在 Youtube 上找到“VB.NET - 如何在 Visual Studio 中创建 SQLite 数据库”。当我从工作室运行它时。不工作
- python-3.x - 不使用 AWS 版本控制存储重复文件
- android - 立即触发警报并立即调用广播接收器方法
- html - 在 WordPress 中使回复计数更大
- command - 夜间机器人命令