2010-09-24 10 views
6

मैं है निम्नलिखित कोड जो मैं अद्यतन करने की आवश्यकता ...रेल 3 कम्बाइन दो चर

<% @users.each do |user| %> 
    <tr> 
    <td><%= link_to user.fname, user %></td> 
    </tr> 
<% end %> 

मैं अपडेट करने का तरीका है कि इतनी के बजाय सिर्फ fname दिखा सीखना चाहते हैं, यह fname + lname

से पता चलता

इसलिए जेम्स बॉण्ड जैसे रिकॉर्ड के लिए, यह जेम्स बॉन्ड दिखाता है और इसे रेल में उपयोगकर्ता से जोड़ता है।

धन्यवाद

उत्तर

18

आप ERB में सही स्ट्रिंग शामिल हो सकते हैं: या

<%= link_to user.fname + " " + user.lname, user %> 
<!-- or, slightly better: avoids problems with nil values --> 
<%= link_to "#{user.fname} #{user.lname}", user %> 
<!-- or, even better --> 
<%= link_to [user.fname, user.lname].join(" "), user %> 

, आप एक सहायक विधि, उदा में है कि बदसूरत तर्क ले जा सकते हैं अनुप्रयोग में/सहायकों/users_helper.rb:

module UsersHelper 
    def full_name(user) 
    [user.fname, user.lname].join(" ") 
    end 
end 

<%= link_to full_name(user), user %> 

या, (यह मैं क्या कर सकता है) आप मॉडल में एक FULL_NAME विधि रख सकते हैं:

class User < ActiveRecord::Base 
    def full_name 
    [fname, lname].join(" ") 
    end 
end 

<%= link_to user.full_name, user %> 
+0

वाह, मुझे लगता है जैसे मैंने अभी एक टन सीखा - धन्यवाद! मैंने तीसरे सुझाव के साथ जाने का फैसला किया। आप इसे एक आईएफ कथन जोड़ने के बारे में क्या सोचते हैं, इसलिए यदि डीबी में किसी भी चर को अपरिभाषित किया गया है तो अज्ञात कहता है ... तो यह अज्ञात नौकरियां हो सकती है, या अज्ञात स्टीव ... या सिर्फ अज्ञात है .. मॉडल के लिए ठीक है? – AnApprentice

+2

कुछ लोग तर्क देंगे कि इस तरह के तर्क मॉडल के लिए भी "प्रस्तुतिकरण" हैं, और इसके बजाय एक दृश्य सहायक होना चाहिए। आखिरकार यह तय करने के लिए आप पर निर्भर है कि यह सबसे उपयोगी कहां है: मैंने मॉडल में बहुत से "मानक" प्रस्तुतिकरण विधियों को रखा है। "स्टीव अज्ञात" जैसे नाम प्रस्तुत करना मेरे लिए अजीब लगता है, और एक विषम ("गैर-मानक") प्रस्तुति जैसे कि मॉडल के बजाय शायद एक सहायक विधि में जाना चाहिए। लेकिन यह आप पर निर्भर है। –

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