Cela devrait fonctionner:
def upload
render :json => { :attachmentPartial => render_to_string('messages/_attachment', :layout => false, :locals => { :message => @message }) }
end
Notez que le render_to_string et le trait de soulignement _
avant le nom de la partie (parce que render_to_string ne prévoit pas une partie, d'où la : layout => false aussi).
MISE À JOUR
Si vous voulez rendre html
l'intérieur d'une demande json
par exemple, je vous suggère d'ajouter quelque chose comme ça dans application_helper.rb
:
# execute a block with a different format (ex: an html partial while in an ajax request)
def with_format(format, &block)
old_formats = formats
self.formats = [format]
block.call
self.formats = old_formats
nil
end
alors vous pouvez juste faire de votre méthode:
def upload
with_format :html do
@html_content = render_to_string partial: 'messages/_attachment', :locals => { :message => @message }
end
render :json => { :attachmentPartial => @html_content }
end
Oui, vous devriez pouvoir accomplir ceci. Je pense que votre syntaxe est incorrecte cependant. Caisse: http://stackoverflow.com/questions/2088280/in-rails-how-do-you-render-json-using-a-view pour une version de travail. – raidfive
la question est différente :), partielle en json, pas json en partiel –
bonne prise :) suppose que je n'ai jamais essayé de cette façon – raidfive