link_to सहायक एक मॉडल के लिए सही यूआरएल प्रस्तुत नहीं कर रहा है - रूबी-ऑन-रेल, रूबी, एक्टिव्रेकॉर्ड, हाइपरलिंक, लिंक-टू

मेरे पास एक Request आदर्श। मेरे विचारों में से एक में, मैं इसे एक लिंक प्रस्तुत करने की कोशिश कर रहा हूं।

मैंने कोशिश की पहली बात निम्नलिखित थी:

.requests-container
= link_to request, class: "request-link"

निम्न लिंक के रूप में प्रस्तुत करता है <a href="/requests?class=request__title">My request 1</a>class विकल्प यूआरएल में मिश्रित हो जाता है। वह समझ में आता है, हालांकि, के बाद से link_to ऐसा लगता है कि यूआरएल दूसरे पैरामीटर के रूप में है।


उसके बाद, मैंने इस संस्करण की कोशिश की:

.requests-container
= link_to request

परिणाम भी अजनबी साबित हुआ, हालांकि, जेनरेट किया गया लिंक निम्नलिखित था: <a href="/requests">My request 1</a>

इस लिंक में, href विशेषता के रूप में उत्पन्न होता है /requests के बजाय /requests/2, इस ActiveRecord ऑब्जेक्ट के लिए अपेक्षित यूआरएल।


और भी अजीब बात है, मेरे निम्नलिखित प्रयास,

.requests-container
= link_to request, request, class: "request-link"

एक पूरी तरह से काम कर रहे लिंक उत्पन्न किया: <a class="request-link" href="/requests/2">My request 1</a>। यह अपेक्षित लिंक है और यह ठीक काम करता है।


क्या यह रेल में ज्ञात व्यवहार है? मेरे कोड में अन्य भाग हैं जहां मैंने अभी उपयोग किया है link_to <activerecord object> और उसने ठीक काम किया है, इसलिए मुझे पूरी तरह से यकीन नहीं है कि इस मामले में यह क्यों काम नहीं करता है।

उत्तर:

उत्तर № 1 के लिए 1

link_to पहले तर्क लेता है body लिंक पर जो दृश्य पर प्रदर्शित किया जाएगा और दूसरा तर्क वास्तविक यूआरएल है

जब आपने कोशिश की

= link_to request, class: "request-link"

इसमें class: "request-link" जैसा params

लेकिन दूसरे मामले में आप वास्तव में पारित किया object दूसरे पैरामीटर के रूप में, जो सही है

= link_to request, request, class: "request-link"

यहां तीसरा पैरामीटर आता है options हैश

यदि आप एक नज़र डालें डॉक्स आपको यह उदाहरण मिलेगा

link_to(body, url, html_options = {})
# url is a String; you can use URL helpers like
# posts_path

उपर्युक्त उदाहरण से यह स्पष्ट है कि पहला, दूसरा और तीसरा तर्क है body, url तथा html_options क्रमशः।


संबंधित सवाल
सबसे लोकप्रिय