Rendre une vue partielle via ajax, Ruby on Rails
actuellement, je suis en train de faire mon application rails unique paginé, mais je vais avoir quelques problèmes avec le rendu de partiels.. Maintenant voici mon code de contrôleur:
class WelcomeController < ApplicationController
def create
@welcome = WelcomeController.new
render :partial => 'enjoy'
end
def index
if params[:id] == 'enjoy'
@partial_view = 'enjoy'
elsif params[:id] == 'about'
@partial_view = 'about'
else
@partial_view = 'main'
end
end
end
Donc, ce contrôleur est relié à mon point de vue, pour les pages de changer j'ai été en utilisant le code de l'action "index", mais maintenant, je suis en train d'utiliser la chose dans l'action de création. Le code de mon index.html.slim où je suis en train d'appeler l'action de création est:
div id="content"
= form_tag(:url => {:action => 'create'},
:update => "content", :position => :bottom,
:html => {:id => 'subject_form'},
:remote => true)
= submit_tag 'Add'
Donc sur le bouton cliquez sur "Ajouter", je m'attends à ce que le contenu de _enjoy.slim.html qui est mon partiel d'aller dans le div avec l'id "contenu", mais lorsque le bouton est cliqué et le _enjoy.html.slim est rendue à chargement sur le dessus de la totalité de l'index.html.slim page... Donc je suis coincé à qui, comment puis-je faire charger dans certains div?
Merci une tonne pour quelqu'un qui a une réponse à cela un {:
- La version de rails êtes-vous en cours d'exécution?
Vous devez vous connecter pour publier un commentaire.
Contrôleur:
Vue:
Créer bienvenue/créer.js.erb et ajoutez la ligne suivante à elle:
$('#content').html("<%= j render(:partial => 'welcome/enjoy') %>")
$('#content').html("#{ j render(:partial => 'welcome/enjoy') }")
#{}
est utilisée pour le texte de l'interpolation en slim.Vous devez ajouter un
create.js.erb
fichier dans votre "bienvenue" répertoire de vues et de là, vous devez rendre partielle par ajax:et dans l'action de création de la commande que vous avez à répondre à javascript: