2016-05-11 51 views
1

我在HAML文件下面的代碼:點擊一行到另一個路徑的Rails

%table.table-base.table-striped.table-hover{:id => "work-list-table"} 
     %thead 
     %tr 
      %th{'no-sort' => 'true'}= t('worklist.work_list') 
      %th{'no-sort' => 'true'}= t('worklist.number_of_work_items') 
     %tbody 
     -for x in [1,2,3] 
      %tr{:id => x,href: duplicate_claims_work_lists_path, :style => "cursor:pointer"} 
      %td 
       %ul.custom-ul 
       %li 
        %h4 
        = "hello" 
      %td 
       %ul.custom-ul 
       %h4 
        = "3" 

這將創建列「你好」和「3」的3行。我假設我可以點擊3行中的任何一行來路徑到duplicate_claims_work_lists_path,但是它保留在頁面上,而且根本不是路徑。下面是一些類似的代碼,當該行點擊正確的路徑:

%table.table-base.table-striped.table-hover{:id => "remittance-table"} 
    %thead 
    %tr 
     %th{:type => 'payer'}= t('payers.payer') 
     %th.data-type-number{'sort-type' => 'totalPayments'}= t('remittances.total_remittance') 

    %tbody 
    - @remittances.each do |remittance| 
     %tr{:id => remittance.id,href: edit_remittance_path(remittance), :style => "cursor:pointer"} 
     %td= remittance.payer.name 
     -remit = remittance.total_payments.to_i >= 0 ? "pos" : "neg" 

任何想法,爲什麼當我點擊該行,我不能拿到第一代碼示例路徑的任何地方? `duplicate_claims_work_lists_path'的作品,因爲我有一個菜單子欄帶我去那裏。

+0

有沒有必要使用散列設置非動態ID,使用'%table.table-base.table-striped.table-hover#work-list-table',你也不需要'= '對於非動態內容,你可以刪除它們(帶引號)爲'%h4 =「hello」'和'%h4 =「3」',最後你應該避免混合舊的散列樣式'{:key =>值}'和新的散列樣式{key:value}'。 – igwan

回答

1

您正在爲<tr>元素設置href屬性,這不是鏈接的工作方式。鏈接使用<a>元素進行。 使Rails中鏈接的最簡單方法是使用link_to幫手:

%tbody 
    - for x in [1,2,3] 
    %tr{id: x} 
     %td 
     = link_to duplicate_claims_work_lists_path 

說實話,我真的不知道爲什麼你第二個例子工程。

相關問題