0

foob​​ar railsコードを理解しようとしていますが、次のことがわかりました。コントローラBから継承するコントローラAがあります(A <B)。どちらにも「index」メソッドはありませんが、Bにはビュー「app / views / B / index.rhtml.erb」があり、Aコントローラーからそのアクションでレンダリングされます。そのビューには次の行があります。

render(:partial => "find")

ただし、「app / views / A/_find.rhtml.erb」と「app/views / B / _find.rjs」の2つのファイルがあり、Aコントローラーからインデックスが呼び出された場合にどちらがレンダリングされるかわかりません。さらに多くの「app/views / B / _find.rjs」には次の行があります:

page.replace_html(:contentBody, :partial => "find")

そして、ここで何がレンダリングされるのかわかりません。何か案は?

4

1 に答える 1

1

アプリケーションはrjs、スクリプトが要求された場合にのみファイルをレンダリングします(通常はAJAX要求を介して)。ユーザーがインデックスアクションに通常どおりアクセスした場合(つまり、ブラウザを使用したHTMLのリクエスト)、アプリはindex.rhtml.erbHTML応答を生成するようにレンダリングし、HTML応答を生成します_find.rhtml.erb。ページの一部がスクリプトを要求している場合は、_find.rjsレンダリングされます(実際には、舞台裏でjavascript応答が生成されます)。この場合、_find.rjs実際に_find.rhtml.erbは呼び出しでHTML部分を使用してreplace_html、ページの一部を置き換えます。

ところで、あなたは古いバージョンのRailsを使用しているようで、現在は使用されrhtmlrjsいません。新しいバージョンで作業することをお勧めします。

于 2012-07-26T21:18:39.997 に答える