Ruby on Rails:在 Rails 视图中创建动态类名



我想在 Rails 中的导航窗格中实现一个动态类名。

为此,我在控制器中定义了一个属性,如下所示:

class StoresController < ApplicationController
    @nav = "store"
    def index
        ...
    end
end

然后,我在application.html.erb文件中使用 @nav 属性,如下所示:

<%= link_to "Store", stores_path, if @nav == 'store' { :class => 'selected' } %>

但它不起作用。我尝试了其他组合,例如将link_to与 () 一起使用或反转if语法,但没有任何效果。

我的问题:如何在 Rails 中动态设置class值?什么是最佳实践?

提前谢谢。

@nav 是控制器类实例变量,而不是控制器对象实例变量,并且在操作和相应的模板中不可见。我假设您想依赖当前的控制器,因此您可以执行以下操作:

<%= link_to "Store", stores_path, { :class => params[:controller] == 'stores' ? 'selected' : '' } %>

对我来说,最佳做法是创建一个帮助程序,该帮助程序取决于您当前的路径和给定的路径,返回专有类名甚至整个链接(在这种情况下link_to替换)。

相关内容

  • 没有找到相关文章

最新更新