gpt4 book ai didi

ruby-on-rails - 如何正确重构 RoR View 中的简单 if else 逻辑

转载 作者:数据小太阳 更新时间:2023-10-29 08:26:55 25 4
gpt4 key购买 nike

<分区>

我是 Rails 的新手,我无法完全理解从 View 重构逻辑。假设我有一个简单的 Post 模型。在索引 View 中,如果有帖子,我希望显示特定内容。基本上,如果有任何帖子,则显示此特定内容或其他内容。

这是我的 index.html.erb 帖 subview :

<div class="content">
<% if @posts.any? %>
<table>
<thead>
<tr>
<th>Title</th>
<th>Content</th>
</tr>
</thead>
<tbody>
<% @posts.each do |post| %>
<tr>
<td><%= post.title %></td>
<td><%= post.content %></td>
</tr>
<% end %>
</tbody>
</table>
<% else %>
<p>There are no posts!</p>
<% end %>
</div>

现在,我重构它的方法是创建几个助手和部分,如下所示:

posts_helper.rb(根据 if 逻辑呈现部分):

module PostsHelper

def posts_any
if @posts.any?
render 'this_content'
else
render 'this_other_content'
end
end

end

在部分中,我只是使用了 if else 语句中的确切内容。

_this_content.html.erb 部分:

<table>
<thead>
<tr>
<th>Title</th>
<th>Content</th>
</tr>
</thead>
<tbody>
<% @posts.each do |post| %>
<tr>
<td><%= post.title %></td>
<td><%= post.content %></td>
</tr>
<% end %>
</tbody>
</table>

_this_other_content.html.erb 部分:

<p>There are no posts!</p>

最后,重构的 index.html.erb(将调用辅助方法):

<div class="content">
<%= posts_any %>
</div>

问题是,我只是不相信这是正确的 Rails 重构方式。如果你们中的任何人能对此有所了解,我将不胜感激!谢谢!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com