Ruby on rails 为引导Nav分配活动类-Ruby on Rails

Ruby on rails 为引导Nav分配活动类-Ruby on Rails,ruby-on-rails,ruby,twitter-bootstrap,Ruby On Rails,Ruby,Twitter Bootstrap,我在rails应用程序中有一个博客部分,我想知道根据打开的页面分配CSS类active的好方法是什么 是否应通过.erb和if和do语句执行此操作?它需要反映该职位所属的类别 博客类别表: create_table "blog_categories", force: :cascade do |t| t.string "name" t.integer "parent_id" t.datetime "created_at", null: false t.datetime "updat

我在rails应用程序中有一个博客部分,我想知道根据打开的页面分配CSS类
active
的好方法是什么

是否应通过
.erb
if
do
语句执行此操作?它需要反映该职位所属的类别

博客类别表:

create_table "blog_categories", force: :cascade do |t|
  t.string "name"
  t.integer "parent_id"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end
发布表列:
t.integer“category\u id”
-存储此字段是为了与cat的
.id
相关


我的类别用
父id
表示,其值为
NULL
,子类别是那些将
父id
设置为主类别的
.id
的类别。

您可以通过在应用程序\u helper.rb中定义一个函数来实现这一点

def active_class(path)
 "active" if current_page?(path)
end
current\u page?
如果用户与传入的路径参数位于同一url上,则方法将返回活动状态。结帐

那么在视图中,你可以这样使用它

<li class="<%= active_class new_user_session_path %>">

  • 我希望您使用下面这些帮助程序,一个用于单路径 例如:

  • def活动_类(链接_路径) 当前页面?(链接路径)?'活动“:” 结束
  • 这个用于多个链接数组 乙二醇

  • #传递路径数组以获取当前页面的活动链接 def活动_类_多个(阵列) 数组.include?(请求.path)?'活动“:” 结束
  • 您可以参考以下内容:这是否比直接包含代码(如:
    )更好?两者在逻辑上是相同的,但定义函数在某种意义上更好—它使代码可重用且干净。
    <li class="<%= active_class(first_path) %>">
    
    def active_class(link_path)
     current_page?(link_path) ? 'active' : ''
    end
    
    <li class="<%= active_class_multiple([first_path, second_path]) %>">
    
    # pass array of paths to get current page active link
    def active_class_multiple(array)
      array.include?(request.path) ? 'active' : ''
    end