2011-12-23 6 views
5

मेरे शो उपयोगकर्ता पेज में, मैं बाहरी वेबसाइट पर एक लिंक जोड़ना चाहता हूं जिसमें पैरामीटर के रूप में पारित तालिका में सहेजे गए कुछ मान हैं।मैं लिंक_to बाहरी यूआरएल में पैरामीटर कैसे जोड़ूं?

मुझे पहला भाग सही काम मिल गया, यह आसान है।

<%= link_to "Outside Site", "http://outsidesite.com/create" %> 

लेकिन मैं यह भी @user.email, @user.first_name की तरह, कुछ paramaters जो डेटाबेस में सहेजे जाते हैं पास करना चाहते हैं, आदि

तो मूल रूप से अंतिम कड़ी दिखेगा की तरह:

http://outsidesite.com/[email protected]&firstname=userfirstname आदि आदि

ऐसा करने का सबसे अच्छा तरीका क्या होगा?

उत्तर

1

क्योंकि रेल नहीं जानते कि वेबसाइट यह कैसे सर्वोपरि है, मुझे लगता है कि आपको स्ट्रिंग कॉन्सटेनेशन के साथ ऐसा करना होगा। कम से कम, आप यह करने के लिए एक सहायक लिख सकते हैं लेकिन अंत में एक स्ट्रिंग concatenation बन जाएगा।

+0

मुझे पता चला कि यह कैसे करना है, 10 मिनट से भी कम हाहा .. वैसे भी धन्यवाद। – cdotfeli

+1

कोई समस्या नहीं, आपने किस विधि का उपयोग किया? आपको यहां जवाब दें और इसे 2 दिनों में सही के रूप में चिह्नित करें ताकि भविष्य के डेवलपर्स –

+2

के संदर्भ के रूप में इसका उपयोग किया जा सके हाँ हाँ मैं ऐसा करने की योजना बना रहा था :) मैं बस '<% = link_to" साइट के बाहर "गया, ('http : //outsidesite.com? ईमेल = '+ @ user.email+'&firstname='[email protected])%> 'और जो कुछ भी मुझे चाहिए उसे जोड़ना। मैं कुछ भी याद नहीं कर रहा हूँ? – cdotfeli

4

यह एक वैध तरीका है:

require 'uri' 
escaped_email = URI.escape(@user.email) 
+0

धन्यवाद। मुझे चर से बचने के बिना ऐसा करने का कोई तरीका मिला। – cdotfeli

0

दें

# routes.rb 
get 'create?:query' => 'users#create', :as => :create_users_with_query 

# models/user.rb 
class User < ActiveRecord::Base 
    def to_params 
    "email=#{self.email}&firstname=#{self.firstname}" 
    end 
end 

# view 
<%= link_to "Outside Site", create_users_with_query(@user) %> 
4

यह एक कोशिश:

<% = link_to "Outside Site", 
"http://outsidesite.com/create?email=#{@user.email}" %> 

बस सुनिश्चित करें कि आप चर आप URL में डाल रहे हैं बच कर आप यूआरएल पैटर जैसे सहायक विधि लिख सकते हैं। आप कोड bellow जाँच कर सकते हैं:

def generate_url(url, params = {}) 
    uri = URI(url) 
    uri.query = params.to_query 
    uri.to_s 
    end 

उसके बाद, आप की तरह सहायक विधि कॉल कर सकते हैं:

generate_url("YOUR-URL-ADDR-HERE", :param1 => "first", :param2 => "second") 

मैं आप इस उपयोगी पाते हैं उम्मीद है।

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