Rails 3 の Ajax についてはある程度理解できたと思いますが、どこかで混乱しているか、何かを誤解していると思います。私の理解では、同じページで異なるコンテンツを呼び出したい場合は、その特定のアクション用に js.erb ファイルを作成します。たとえば、tynewyddnews のアクションがある場合、tynewyddnews ビューと tynewyddnews.js.erb ファイルがあります。
次に、そのページでレンダリングするパーシャルを作成し、.js.erb ファイルでそのパーシャルを呼び出します。
例
意見
<% @tynewyddpost.each do |t| %>
<li>
<% single = t.photos.first %>
<a class="photo" href="#"><%= image_tag(single.avatar.url(:thumbnail_news_images)) %></a>
<p><%= link_to t.title, tynewyddnews_path(:type => 'tynewyddnews'), :post_id => t.id, :remote => true %></p>
<p class="date"><%= date_output(t.published_on) %></p>
</li>
<% end %>
<div class="post-item">
<h2><%= @tynewyddpostlatest.title %></h2>
<div id="work-samples">
<% for photo in @tynewyddpostlatest.photos %>
<%= image_tag(photo.avatar.url(:news_images), :class => 'work-sample') %>
<% end %>
</div>
<p class="post-description"><%= @tynewyddpostlatest.comments.html_safe %></p><a class="post-more" href="#">Continue Reading »</a>
<div class="post-item-panel">
<ul>
<li class="date">
<p><%= date_output(@tynewyddpostlatest.published_on) %></p>
</li>
</ul>
</div>
</div>
過去の投稿は左側に、最新の投稿は中央に表示されます
.js.erb
<% if params[:type] == 'tynewyddnews' %>
jQuery('.post-item').html('<%= escape_javascript(render partial: 'tynewyddnewspost') %>');
<% end %>
部分的
<div class="post-item">
<h2><%= @tynewyddpost.title %></h2>
<div id="work-samples">
<% for photo in @tynewyddpost.photos %>
<%= image_tag(photo.avatar.url(:news_images), :class => 'work-sample') %>
<% end %>
</div>
<p class="post-description"><%= @tynewyddpost.comments.html_safe %></p>
<div class="post-item-panel">
<ul>
<li class="date">
<p><%= date_output(@tynewyddpost.published_on) %></p>
</li>
</ul>
</div>
</div>
コントローラ
def tynewyddnews
tynewyddpost = Post.tynewydd_posts.find(params[:post_id])
tynewyddpost.shift
@tynewyddpost = tynewyddpost
@tynewyddpostlatest = Post.tynewydd_posts.first
end
tynewydd_posts はスコープです
scope :tynewydd_posts, :include => :department, :conditions => {"departments.name" => "Ty Newydd"}, :order => "posts.published_on DESC"
現時点で私の問題は、ページをレンダリングしようとするとエラーが発生することです
Couldn't find Post without an ID
長い投稿で申し訳ありませんが、誰かが私を正しい方向に向けることができれば、それは素晴らしいことです
ありがとう