128 Stimmen

Wie rendere ich einen Teil eines anderen Formats in Rails?

Ich versuche, eine JSON-Antwort zu erzeugen, die etwas HTML enthält. Ich habe also /app/views/foo/bar.json.erb :

{
  someKey: 'some value',
  someHTML: "<%= h render(:partial => '/foo/baz') -%>"
}

Ich möchte, dass es Folgendes wiedergibt /app/views/foo/_baz.html.erb aber es wird nur Folgendes wiedergeben /app/views/foo/_baz.json.erb . Weitergabe :format => 'html' ist nicht hilfreich.

0 Stimmen

Der Titel der Frage ist viel allgemeiner als das spezielle Problem von James. Wenn Sie nach anderen Lösungen suchen, schauen Sie hier nach: stackoverflow.com/questions/7616097/

1voto

Garfield Punkte 1207

Ich bin auf diesen Thread gestoßen, als ich versucht habe, einen XML-Teil in einer anderen xml.builder-Ansichtsdatei zu rendern. Im Folgenden finden Sie eine schöne Möglichkeit, dies zu tun

xml.items :type => "array" do
    @items.each do |item|
        xml << render(:partial => 'shared/partial.xml.builder', :locals => { :item => item })
    end
end

Und ja... Der vollständige Dateiname funktioniert auch hier...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X