gpt4 book ai didi

ruby-on-rails - View 内的条件
标签。为什么不好?

转载 作者:行者123 更新时间:2023-12-04 06:00:02 25 4
gpt4 key购买 nike

在我的 Rails 应用程序中,我有一个非常动态的用户仪表板,它根据用户角色(客户、员工、管理员)显示和隐藏 div 元素。

例如:users/show.html.erb

 <% if current_user.role_id == 4 %>
<th>Edit</th>
<th>Delete</th>
<% elsif current_user.role_id == 1 %>
<th>Cancel Appointment</th>
<% else %>
<% end %>
</tr>
</thead>

我将表格导航选项卡存储在它们自己的部分中,如下所示:

<% if current_user.role_id == 1 %>
<%= render 'users/customer_bar' %>
<% elsif current_user.role_id == 2 %>
<%= render 'users/employee_bar' %>
<% elsif current_user.role_id == 4 %>
<%= render 'users/honcho_bar' %>

可以对上述标签进行同样的操作,但这根本不是 DRY。有没有更好的办法?为什么以这种方式有条件地格式化标签是不好的?

最佳答案

声明

也许您正在寻找 case / switch :

case current_user.role_id
when 4
#do something for 4
when 1
#do something for 1
end

--

系统

我强烈建议使用 partial 来让它工作:

<%= render partial: "your_partial", local: { your_local_var: "value" } %>

这将允许您在部分本身中定义条件:

#app/views/controller/your_partial.html.erb
<% if var == "value" %>
...
<% else %>
...
<% end %>

不好吗?

我不会说它是“坏”的——通常情况下你需要条件。我认为,问题是您需要确保能够以最有效的方式处理这些情况。

使用 case/switch 是一种合法的方式,但是,您可能会在 stack 上遇到问题

关于ruby-on-rails - View 内的条件 <div> 标签。为什么不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24879552/

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