希望我可以解释这一点,以便人们能够理解我想要实现的目标。目前我创建了多个帖子,它们显示在此 url 以供公众查看
/tynewyddnews
与标准相反
/posts/:id
仅对管理员用户可用
该页面分为 2 个,占据大部分页面的最新帖子和页面左侧列出的历史帖子,每个通过范围呈现略有不同
范围
scope :tynewydd_posts, :include => :department, :conditions => {"departments.name" => "Ty Newydd"}, :order => "posts.published_on DESC"
最新的帖子
@tynewyddpostlatest = Post.tynewydd_posts.first
历史帖子
tynewyddpost = Post.tynewydd_posts.reverse
tynewyddpost.pop
@tynewyddpost = tynewyddpost
在我看来,我像这样渲染每个
左手边
<% @tynewyddpost.reverse.each do |t| %>
<%= link_to t.title, t %>
主要的
<%= @tynewyddpostlatest.title %>
我想要实现的是,当单击左侧帖子的链接时,它将通过 ajax 代替中心的主要帖子。到目前为止,我想出的东西在一定程度上起作用,标题和评论通过 ajax 调用呈现,但我点击的帖子的照片没有在视图中呈现,即使在萤火虫中它们显示为正在呈现.(尽管它们的大小为 0x0 像素)
左侧帖子
<% @tynewyddpost.reverse.each do |t| %>
<%= link_to t.title, tynewyddnews_path(:type => 'tynewyddnews'), :remote => true %>
<% end %>
tynewyddnews.js.erb
<% if params[:type] == 'tynewyddnews' %>
$('.post-item').html('<%= escape_javascript(render partial: 'tynewyddnewspost') %>');
<% end %>
部分的
<div class="post-item">
<% @tynewyddpost.each do |t| %>
<h2><%= t.title %></h2>
<div id="work-samples">
<% for photo in t.photos %>
<%= image_tag(photo.avatar.url(:news_images), :class => 'work-sample') %>
<% end %>
</div>
<p class="post-description"><%= t.comments.html_safe %></p><a class="post-more" href="#">Continue Reading »</a>
<div class="post-item-panel">
<ul>
<li class="date">
<p><%= date_output(t.published_on) %></p>
</li>
</ul>
</div>
</div>
<% end %>
非常感谢