簡體   English   中英

使用 HAML 和 Rails 連接變量和 link_to

[英]Concatenate a variable and a link_to using HAML and Rails

我有一個包含 2 列的表:

%table.table.table-hover.table-striped.table-condensed
  %thead
    %tr
      %th= t('column.name1')
      %th= t('column.name2')
      %th
  %tbody
    %tr
      %td= "#{name1}" + link_to 'Details', name_path(@abc), class: 'btn btn-default btn-xs', id: 'name_details'
      %td= family_name

我需要的是顯示name1變量的值,並在它旁邊顯示 link_to Details作為同一%td的一部分。

正如您在我的代碼中看到的,我正在嘗試這樣做:

%td= "#{name1}" + link_to 'Details', name_path(@abc), class: 'btn btn-default btn-xs', id: 'name_details'

但這給了我一個語法錯誤,並且不確定編寫該行代碼的正確方法/語法是什么。

非常感謝!

您可以使用如下所示的字符串插值來實現它:

%td= "#{name1} #{link_to 'Details', name_path(@abc), class: 'btn btn-default btn-xs', id: 'name_details'}"

編輯#1


連接值時您將收到以下錯誤

SyntaxError - syntax error, unexpected tSTRING_BEG, expecting do or '{' or '('

您收到此異常是因為 ruby 無法區分 arguments 需要傳遞給方法link_to的所有內容。

正如異常提示和@jvillian 正確指出的那樣,您可以用括號括起 function 調用。

%td= name1 + link_to('Details', name_path(@abc), class: 'btn btn-default btn-xs', id: 'name_details')

在這兩種方式中,連接后返回的數據都將以字符串形式返回,默認情況下不會返回 html_escape。

您需要使用html_safe顯式轉義

%td= name1 + link_to('Details', name_path(@abc), class: 'btn btn-default btn-xs', id: 'name_details')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM