ruby-on-rails - Rails 中有条件地更改 link_to 位置的简洁方法

标签 ruby-on-rails ruby ruby-on-rails-3 link-to

所以我有这个link_to

 <li><%= link_to "Home", root_path %></li>

但如果它是管理员,我想转到如下所示的不同位置...我知道我可以做到,但有没有更简洁的方法

 <% if admin_user %>
 <li><%= link_to "Home", admin_path(current_user) %></li>
 <% else %>
 <li><%= link_to "Home", root_path %></li>
 <% end %>

最佳答案

稍微干净一点

<li><%= link_to "Home", admin_user ? admin_path(current_user) : root_path %></li>

或者在您计算 admin_user 的地方,大概是在 Controller 中,创建一个包含适当路径的附加变量,然后在 View 中使用它。例如

# in controller
home_path = admin_user ? admin_path(current_user) : root_path

# in view
<li><%= link_to "Home", home_path %></li>

关于ruby-on-rails - Rails 中有条件地更改 link_to 位置的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952685/

相关文章:

ruby-on-rails - Rails to_json 包含多个 belongs_to 和 has_many 引用

ruby -::(双冒号)在 Ruby 中是什么意思?

ruby-on-rails - 从自定义 Controller Rails 向模型插入数据

ruby-on-rails - Rails 重复 sql 查询,即使包含

ruby-on-rails - 如何使用 'where'的 'ActiveRecord::QueryMethods'方法来限制搜索?

javascript - 将敏感信息从 javascript 传输到 rails

ruby-on-rails - 如何删除 haml 生成的空间

html - 如何使用 React 和 Rails 创建表单?

ruby - 寻找完美平方算法的优化

ruby-on-rails-3 - Rails 部分有时需要太多时间来渲染