Html Haml与Rails:将表列制作为链接
我正在创建一个haml表,如下所示:Html Haml与Rails:将表列制作为链接,html,ruby-on-rails,haml,Html,Ruby On Rails,Haml,我正在创建一个haml表,如下所示: %tbody - @records.each do |br| %tr %td.name = br.full_name %td.address = br.address 我想创建一个从整个tr到另一个页面的链接。如何执行此操作?您应该能够将行作为块传递到链接到: link_to(url, html_options = {}) do #row end 编辑: 按OP编辑: 这最终奏效了:
%tbody
- @records.each do |br|
%tr
%td.name
= br.full_name
%td.address
= br.address
我想创建一个从整个
tr
到另一个页面的链接。如何执行此操作?您应该能够将行作为块传递到链接到
:
link_to(url, html_options = {}) do
#row
end
编辑:
按OP编辑:
这最终奏效了:
%tr
%td.name
= link_to(br.full_name, html_options = {:action => 'show', :id => br.id})
您应该能够将行作为块传递到
链接到:
link_to(url, html_options = {}) do
#row
end
编辑:
按OP编辑:
这最终奏效了:
%tr
%td.name
= link_to(br.full_name, html_options = {:action => 'show', :id => br.id})
因为在
标记中嵌套任何块级元素都是非法的。我会使用jQuery来完成它
%tr{"data-link" => url_for(:action => 'show', :id => br.id)}
%td.name
= br.full_name
%td.address
= br.address
然后,在表的末尾:
:javascript
$("tr[data-link]").click(function() {
window.location = this.data("link")
})
您还应该包括一个将鼠标光标更改为指针的样式表
:stylesheet
#yourtable tr
cursor: pointer;
因为在
标记中嵌套任何块级元素都是非法的。我会使用jQuery来完成它
%tr{"data-link" => url_for(:action => 'show', :id => br.id)}
%td.name
= br.full_name
%td.address
= br.address
然后,在表的末尾:
:javascript
$("tr[data-link]").click(function() {
window.location = this.data("link")
})
您还应该包括一个将鼠标光标更改为指针的样式表
:stylesheet
#yourtable tr
cursor: pointer;
下面是我在Rails 4.0.2中的实现方式。我的控制器的名称是order
为您的表分配一个id,以便您以后可以通过CSS识别它;我使用了idorders
对于包含数据单元的每个表行,将“数据链接”属性与链接的值一起添加到其中(在我的示例中,它看起来像/orders/1
等等)
在JavaScript文件(或此处所示的CoffeeScript文件)中,为具有“数据链接”属性的表行创建链接,并使用其各自的“数据链接”值
在控制器的样式表中,当光标悬停在行上时,使光标变为指针,以指示它们是可单击的
app/assets/stylesheets/order.css.scss
下面是我在Rails 4.0.2中的实现方式。我的控制器的名称是order
为您的表分配一个id,以便您以后可以通过CSS识别它;我使用了idorders
对于包含数据单元的每个表行,将“数据链接”属性与链接的值一起添加到其中(在我的示例中,它看起来像/orders/1
等等)
在JavaScript文件(或此处所示的CoffeeScript文件)中,为具有“数据链接”属性的表行创建链接,并使用其各自的“数据链接”值
在控制器的样式表中,当光标悬停在行上时,使光标变为指针,以指示它们是可单击的
app/assets/stylesheets/order.css.scss
我明白了:非法嵌套:在纯文本中嵌套是非法的。
这是haml,而不是Rubyth。这将生成无效的html。用
标记嵌套
是非法的。出于某种原因,这根本不显示任何内容。如果我将-to改为a=before链接,那么它会显示它之前所做的事情——仍然没有链接。@iblue正确地认为生成的html无效。它将破坏表结构
。你需要一些替代方法它是否非法但在某些浏览器中受支持?只是好奇。当我回答上面提到的问题时,我测试了代码(Firefox 12ish),它将行嵌套在一个锚标记中,效果很好。我得到了这样的结论:非法嵌套:在纯文本中嵌套是非法的。
这是haml,而不是Rubyth。这将生成无效的html。用
标记嵌套
是非法的。出于某种原因,这根本不显示任何内容。如果我将-to改为a=before链接,那么它会显示它之前所做的事情——仍然没有链接。@iblue正确地认为生成的html无效。它将破坏表结构
。你需要一些替代方法它是否非法但在某些浏览器中受支持?只是好奇。当我回答上面提到的问题时,我测试了代码(Firefox 12ish),该代码将行嵌套在锚标记中,效果很好