メニューバーとコンテンツ領域の 2 つの側面に分割された UI を備えた webapp を構築しています。メニュー バーには、ユーザーが書いたすべてのブログのタイトルのリストがあります。タイトルをクリックすると、コンテンツ エリアが変更され、そのブログの投稿が表示されます。
1.) メニュー バーには次の項目があります。
<%= link_to blog.title, blog, :remote=>true %>
私のコンテンツ領域には、次のものがあります。
<div id="contenthere"></div>
2.) したがって、私の理解では、これによりブログ コントローラーの show メソッドがトリガーされるはずです。そこには、メソッドに次のものがあります。
@blog = Blog.find(params[:id])
respond_to do |format|
format.js { render :show_blog }
end
3.) views/blogs フォルダーで show_blog.js.erb というファイルを探す必要があります。
$("#contenthere").html("<%=escape_javascript(render :partial=>"show_blog")%>");
これは、commenthere id を持つ div を取得し、ブログ コントローラーで設定された @blog パラメーターと等しいブログ パラメーターを使用して、(ブログ ビュー フォルダーにある) _show_blog.html.erb パーシャルをレンダリングします。
4.) したがって、私のショー ブログ パーシャルには次のコードがあります。
<%=@blog.title %>
<%=@blog.user_id %>
編集: 実際、私は周りを検索し、アセットフォルダー内からメソッド「render」を使用できないことがわかりました.js.erbをどこに置くのですか? ブログ ビュー フォルダ、ホーム ビュー フォルダ (index.html.erb)、および /view/ フォルダだけに移動しました...エラーはなくなりましたが、リンクが機能していません...
編集: show_blog.js.erb をビュー/ブログ フォルダーに配置します。ブログ コントローラーがそれを呼び出しているためです。リンクをクリックしても何も起こらず、コンソールに JS エラーが表示されません。jsはまったく呼び出されていますか?
編集:私の最終的な答えを反映するように変更されました。