Rails:从控制器更改元素的类

Nat*_*han 4 ruby-on-rails ruby-on-rails-3

我正在格式化菜单,以便在您点击它之后标题的颜色不同.我想为每个视图使用相同的haml模板,并希望控制器更改特定html元素的类.如何从控制器中定位特定的html元素并为其添加一个类?

这是一个示例:

哈姆尔:

%tr
  %th
    %a#name-header= link_to "Name", people_path({:sort => 'by_name'})
  %th Date
  %th Description
  %th More Info
Run Code Online (Sandbox Code Playgroud)

控制者:

def index
  case params[:sort]
  when "by_name"
    @people = Person.find(:all, :order => "name")
    #How can I change the class of the th element here
  else
    @people = Person.all
  end
end
Run Code Online (Sandbox Code Playgroud)

谢谢!

Har*_*tty 5

控制器代码

def index
  @people, @klass = case params[:sort]
  when "by_name"
     [Person.order(name: :asc), "foo"]
  else
     [Person.all, "bar"]
  end
end
Run Code Online (Sandbox Code Playgroud)

查看代码

tris foobar基于sort参数的css类:

%tr{class: @klass}
  %th= link_to "Name", people_path(sort: "by_name"), id: "name-header"
  %th Date
  %th Description
  %th More Info
Run Code Online (Sandbox Code Playgroud)