2

発電機の実験を始めたばかりです。生成されたビュー テンプレートの 1 つで、次のように呼び出したいと思いますrender

index.js.slim
  transition("#main", "<%= escape_javascript(render 'index') %>");

ジェネレーターを使用しようとすると、次のエラーが発生します。

(erb):1:in `template': undefined method `render' for #<Slim::Generators::ScaffoldGenerator:0x000000041b2a20> (NoMethodError)

Rails は本当にrenderジェネレーター内から呼び出すことができないのでしょうか? それとも私は何か間違ったことをしていますか?

4

1 に答える 1

1

Railscast 218 では、さらに詳しく説明しています。

最初に注意すべきことは、テンプレート メソッドを使用しているため、ジェネレーターの実行時にコード内のすべての erb タグが実行されることです。生成されたファイルに任意の erb を含めたい場合は、各 erb タグの先頭にあるパーセント記号をエスケープする必要があります。上記の erb コードのほとんどでそれを行っています。

この場合には:

transition("#main", "<%= escape_javascript(render 'index') %>");

なる必要があります:

transition("#main", "<%%= escape_javascript(render 'index') %>");

必要なのは%、アーブから逃れるための追加料金だけでした。

于 2013-05-02T00:03:34.797 に答える