0

我有以下代码。这是从 ruby​​ 控制器有条件地设置 CSS 样式的原始帖子

%th{:class => @title_header}= link_to 'Title', my_path(:sort => 'title'), :id => 'title_header'

我知道 link_to 工作

1.我不明白什么是 :class 和 :class 是关键字吗?

2.我知道当我们创建一个模型时,我们会得到一个model_path,但是在这种情况下,为什么我们可以将一个参数传递给my_path?

3. 那 :sort 也是rails中的关键字吗?

4. :id 是 rails 中的关键字吗?

5.所以在这种情况下,我们用 my_path 做什么?它会返回一些东西吗?

6. :id 怎么样,在这种情况下它做了什么?

谢谢!

4

2 回答 2

2

:sort 和 :class 是 Ruby 中的符号,表示不会像字符串那样在代码中改变的标识符。它们被用作键/值的散列定义中的键。

当您将名称/值对的散列传递给 HAML 中的 %th 之类的标签时,它会将它们转换为标签上的 HTML 属性。这允许您使用实例变量@title_header 中的类名列表动态设置 TH 标记上的“类”属性的值。

my_path 是一个命名路由助手,它代表一个函数,用于为 Rails 路由集中命名的路由生成 URI。您可以传递各种选项来更改 URI 的生成方式。默认情况下,任何不是路由生成选项的选项都会作为查询参数注入到生成的 URI 上。所以如果 my_path => /my/path,那么 my_path(:foo => 'bar') => /my/path?foo=bar。

在这种情况下,此查询参数可能指示在该 URI 处生成的数据的排序顺序。

以同样的方式,link_to 函数接受一个选项哈希作为它的最后一个参数,它决定了如何生成链接元素。此函数上设置的最后一个选项是 html_options,其中哈希的属性映射到生成的 A 标记的属性。在这种情况下,哈希中的 :id 符号和值将生成具有给定值的“id”HTML 属性。

既然你问了,这里有一个关于什么是 CSS 类的很好的参考:http ://www.tizag.com/cssT/class.php

于 2012-09-18T02:58:21.567 回答
0
%th{:class => @title_header}= link_to 'Title', my_path(:sort => 'title'), :id => 'title_header'

将会

<th class="value of ruby variable @title_header">
  <a href="value_of_my_path?sort=title" id="title_header">Title</a>
</th>

什么是类属性?

这是元素的 css 类定义。

于 2012-09-18T07:24:34.650 回答