2012-05-18 10 views
7

Tôi có đoạn code sau đây trong một tập tin .erb:Tại sao nội suy chuỗi không có trong mẫu erb?

<% embed='<a href="http://someurl.com/whatever">#{@webcast.name}</a>'%> 

<p id="embedCode"> 
    <pre> 
     <code> 
      <%= embed %> 
     </code> 
    </pre> 
</p> 

Thẻ neo được hiển thị một cách chính xác trên màn hình dưới dạng văn bản chứ không phải trả lại là một yếu tố dom, tuy nhiên chuỗi suy là không. Html được hiển thị thành công dưới dạng văn bản nhưng #{@webcast.name} không được đánh giá. Nếu bao gồm <% = @ webcast.name => trong mẫu, tên webcast được hiển thị thành công.

Trả lời

13

Vì các chuỗi được phân cách bằng dấu ngoặc đơn '' không được nội suy.

Thay đổi mã của bạn để ví dụ:

<% embed = "<a href=\"http://someurl.com/whatever\">#{@webcast.name}</a>" %> 

hoặc (nếu bạn muốn tránh mặt nạ các ký tự ngoặc kép ")

<% embed = %(<a href="http://someurl.com/whatever">#{@webcast.name}</a>) %> 

hoặc chỉ (nhờ Samy Dindane cho gợi ý):

<% embed = "<a href='http://someurl.com/whatever'>#{@webcast.name}</a>" %> 
+2

Bạn có thể sử dụng ''' làm dấu phân tách 'href'. Tôi thấy cái này đẹp hơn. :) –

+0

@SamyDindane: Bạn đúng rồi. –

+0

@undur_gongor Thật tuyệt vời. Cảm ơn rất nhiều. – Undistraction