[英]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.