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)
谢谢!
控制器代码
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 foo或bar基于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)