Link_to和Ajax请求Rails

时间:2013-04-08 20:20:10

标签: ruby-on-rails ruby ruby-on-rails-3 routes instance-variables

希望我可以解释这一点,这样人们就可以理解我想要实现的目标。目前我创建了多个帖子,并在此网址上显示了公开视图

/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调用呈现,但我点击的帖子的照片没有在视图中呈现,即使在firebug中它们显示为呈现。(虽然它们的大小为0x0 px)

左手边的帖子

<% @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 %>
非常感谢

1 个答案:

答案 0 :(得分:1)

首先可以删除此行:

<%= @tynewyddpostlatest.title %>

如果错误一直显示,请尝试。如果是,可以删除:

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

错误是否仍然显示?