2010-05-21 5 views
1

Fondamentalement, je tente de rendre un site Web externe (dont l'URL est stockée dans la base de données) dans une page de mon application Ruby on Rails.Comment générer une URL externe dans le cadre d'un appel replace_html dans Ruby on Rails?

J'ai un champ dans mon modèle 'search' appelé 'search' qui contient des adresses web avec la forme 'www.example.com' ou 'example.com'. J'essaie d'utiliser un appel link_to_function avec replace_html pour remplacer le div 'maincontent' par un tag iframe en utilisant la valeur de 'search' dans l'instance courante comme src pour le tag.

Ma tentative actuelle est le code très moche ci-dessous. Je vous serais reconnaissant pour l'un des types de réponses suivants:

  1. Comment puis-je réécrire la chaîne de concaténation pour fonctionner correctement?
  2. Comment puis-je obtenir le même effet (remplaçant le contenu du « mainContent » div avec une balise iframe en utilisant une autre méthode?

(je devais modifier le code avant de retirer le <> de l'iframe)

link_to_function h(search.title) do |page| 

page.replace_html 'mainContent', 'iframe id="embedded" src="http://" + #{search.search} />' 

end 
+1

Je ne connais pas la réponse à votre question, mais je souhaite la bienvenue à M. Vlasits! ;) – John

Répondre

1
  1. En ruby, #{variable} est interpolée si elle est contenue dans des guillemets doubles.

    "<iframe id='embedded' src='http://#{search.search}' />" 
    # Will expand to: 
    "<iframe id='embedded' src='http://www.example.com' />" 
    
  2. Que se passe-t-il en ce moment? Obtenez-vous un vide iframe?

+0

Oui, exactement ... un cadre vide. – vlasits

+0

C'était tout. Travailler correctement avec ces changements. – vlasits

+0

Je vous voterais mais je n'ai pas assez de points. :( – vlasits

Questions connexes