Questo dovrebbe funzionare:
def upload
render :json => { :attachmentPartial => render_to_string('messages/_attachment', :layout => false, :locals => { :message => @message }) }
end
comunicazione la render_to_string e la sottolineatura _
nella prima del nome della parziale (perché render_to_string non prevede un parziale, quindi la : layout => false).
UPDATE
Se si vuole rendere html
all'interno di una richiesta json
per esempio, vi suggerisco di aggiungere qualcosa di simile in 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
allora si può solo fare questo nel tuo metodo:
def upload
with_format :html do
@html_content = render_to_string partial: 'messages/_attachment', :locals => { :message => @message }
end
render :json => { :attachmentPartial => @html_content }
end
Sì, dovresti riuscire a farlo. Penso che la sintassi non sia corretta. Cassa: http://stackoverflow.com/questions/2088280/in-rails-how-do-you-render-json-using-a-view per una versione funzionante. – raidfive
la domanda è diversa :), parziale in json, non json in parziale –
buona cattura :) indovina non l'ho mai provato in quel modo – raidfive