0

希望我可以解释这一点,以便人们能够理解我想要实现的目标。目前我创建了多个帖子,它们显示在此 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&nbsp;&raquo;</a>
   <div class="post-item-panel">
      <ul>
       <li class="date">
        <p><%= date_output(t.published_on) %></p>
       </li>
      </ul>
  </div>
</div>
  <% end %>

非常感谢

4

1 回答 1

1

您可以先删除此行吗:

<%= @tynewyddpostlatest.title %>

如果错误继续显示,请尝试。如果是这样,您可以删除:

<% @tynewyddpost.reverse.each do |t| %>
<%= link_to t.title, t %>

错误是否仍然显示?

于 2013-04-08T20:45:46.633 回答