[英]Rails+Slim: How to use link_to tag with controller & action name; and nested content in the anchor tag
這就是我現在所擁有的:
li
= link_to {:controller => "controllername", :action => "actionname"}
span.glyphicon.sidebar-icon.glyphicon-ok-circle
span WhoHas
但是,這將無法正常工作,因為link_to
期望它的第一個參數是anchor標記內的內容。 我想要的錨標記內的內容是以下span
塊。
任何幫助將非常感激!
你這樣說:
但是,這將無法正常工作,因為link_to期望它的第一個參數是anchor標記內的內容。
這不是真的。 link_to
也可以接受一個塊,它將使用該塊的內容:
link_to("/path/to/thing") do
"My link"
end
並且,因此,不需要將第一個參數用作鏈接的文本。 該文檔列出了以下簽名:
link_to(body, url, html_options = {})
# url is a String; you can use URL helpers like
# posts_path
link_to(body, url_options = {}, html_options = {})
# url_options, except :method, is passed to url_for
link_to(options = {}, html_options = {}) do
# name
end
link_to(url, html_options = {}) do
# name
end
最后兩個選項是您要尋找的。
但是,代碼不起作用的真正原因是因為您使用的括號不帶括號-基本上, method { :hello => "world" }
並沒有達到您的預期。 method { }
語法是為塊保留的,因此期望塊的內容-它找不到。 而是找到保留用於哈希的鍵值關聯。 本質上,Ruby嘗試將其解釋為一個塊,但失敗了。 因此,您的選擇是用括號將其封裝起來,例如: method({ :hello => "world" })
,或者放下括號,例如: method :hello => "world"
。 您還需要在link_to
的末尾添加一個do
,以使內容成為一個塊,因此您的代碼現在如下所示:
li
= link_to :controller => "controllername", :action => "actionname" do
span.glyphicon.sidebar-icon.glyphicon-ok-circle
span WhoHas
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.