2012-12-31 3 views
5

मैं इस है:कैसे मैं एक .map ब्लॉक ऐसी है कि उत्पादन एक वास्तविक लिंक, और नहीं HTML के पाठ प्रतिनिधित्व है भीतर सहायक LINK_TO एक रेल का उपयोग करते हैं

listed in <%= @product.categories.map{ |cat| raw(link_to(cat.name, category_path(cat))) }.join(', ') + "." %> 

यह आउटपुट है:

listed in <a href="/categories/1">Men</a>, <a href="/categories/2">Women</a>. 

यह वास्तव में इसे वास्तविक लिंक में परिवर्तित नहीं करता है। यह वेबपृष्ठ पर पाठ के रूप में इसे थूकता है।

मैं उस लिंक के भीतर से link_to सहायक को एक लिंक के रूप में प्रदर्शित करने के लिए कैसे प्राप्त करूं, और HTML नहीं, उस ब्लॉक के भीतर से?

उत्तर

11

आपको raw के साथ अपने map पर कॉल करने की आवश्यकता है। इस तरह आप रेल को बता सकते हैं कि स्ट्रिंग को सीधे टेम्पलेट में आउटपुट किया जाना चाहिए।

listed in <%= raw(@product.categories.map{ |cat| raw(link_to(cat.name, category_path(cat))) }.join(', ') + ".") %> 
+0

स्वीट। यह काम। बहुत बहुत धन्यवाद ... यह थोड़े trippy है। – marcamillion

+0

यह सिर्फ एक ही एचटीएमएल आउटपुट, एक क्लिक करने योग्य लिंक नहीं। नीचे काम करेगा [यह SO उत्तर] (https://stackoverflow.com/a/32774322/274087) '<% = safe_join (links.map {| l | link_to (l.title, l .url)}, "," .html_safe)%> ' –

संबंधित मुद्दे