Je veux juste utiliser aucune idée? P> Merci! P> P> link_to code> pour ouvrir une popup. J'ai essayé quelque chose mais cela ne fonctionne pas:
5 Réponses :
Mon premier coup de poignard à ce problème ressemblerait probablement à ceci. Il suppose que vous utilisez des rails 3, JQuery et JQuery-Rails. Si vous n'êtes pas, cette approche ne fonctionnera certainement pas. Ce code exact n'est pas testé, votre kilométrage peut varier. J'essaie juste de vous donner une idée de la façon dont vous voudrez peut-être penser au problème. Si vous souhaitez que je puisse élaborer comment cela fonctionne, faites-le me faire savoir et je ferai de mon mieux pour expliquer.
Tournez votre lien_to dans un post Ajax: p> dans votre contrôleur, répondez avec un modèle JavaScript: p> window.open (<%= company_url(@company) %>, "mywindow","width=600,height=600");
Oui mais il avait l'habitude de travailler en générant la fenêtre onclick = "window.open (this.href, 'create_company', 'hauteur = 600, largeur = 600'); renvoyer false;"
Comment se fait-il que le nouveau pilote UJS Jrails a cessé de soutenir cela. Bien que popup ne soit pas une option dans les documents, toujours apidock.com/rails/actionvie/helpers / Urlhelper / link_to
Cela n'y a-t-il pas plus compliqué que la réponse de Viktor Tron? Il s'agit de créer une action de contrôleur supplémentaire, de créer une vue supplémentaire et nécessite que le navigateur de l'utilisateur apporte une demande supplémentaire au serveur afin qu'elle soit sensiblement plus lente. Quel est l'avantage général ou le processus de pensée derrière cette conception?
<%= link_to 'Create a new company', new_company_path, :onclick=>"window.open(this.href,'create_company', 'height=600, width=600');return false;" %>
N'est-il pas préférable d'ajouter la classe popup code> et d'ajouter un comportement contextuel à tous les liens ayant cette classe au lieu de laide en ligne JS? Vous pouvez stocker le titre et d'autres éléments dans
Data-Quelque chose code> attributs.
Je ne pense pas que ce soit laid. Il met tout le code pour ouvrir une popup au même endroit, il est donc moins susceptible de casser à l'avenir. Vous n'êtes pas obligé de vous rappeler d'ajouter de JQuery à chaque page pour faire ce travail et vous n'avez pas les frais généraux nécessaires pour exécuter ce code JQuery.
Vous avez les deux raison. Numéro de vision du monde :) - Les puristes JS non obstrissants iront via JS Crochet sur la classe CSS.
Ajoutez ceci à votre application.js.
= link_to( 'Create a new company', new_company_path, 'data-popup' => true )
De loin le plus élégant - ESP si vous ajoutez quelque chose comme des options de données = 'hauteur = 600, largeur = 600'
Comme les versions de JQuery actuelles déposent live code>, je préférerais $ ("corps"). On ("Cliquez sur" A "A Data-Popup] ', ...
Ceci est la solution rapide et sale
Si votre objectif est juste d'ouvrir le lien dans une nouvelle fenêtre et que vous ne vous souciez pas de la gestion des dimensions / la barre d'outils / etc., vous pouvez également utiliser un bon ancien HTML:
<%= link_to 'Create a new company', new_company_path, :target => '_blank' %>
Le code que vous avez posté aurait travaillé dans des rails 2, mais on dirait que cette fonctionnalité a été supprimée dans les rails 3.