0

只是想了解以下内容,可能是我知道的基本内容。我正在使用 .each 遍历一组记录,并希望查看我通过同一页面上的 ajax 请求单击的帖子

  <h2>Recent News</h2>
   <ul>
    <% @tynewyddpost.reverse.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'), :remote => true %></p>
         <p class="date"><%= date_output(t.published_on) %></p>
      </li> 
     <% end %>
    </ul>

因此,当我单击标题时,无论我单击哪条记录,它都会呈现相同的帖子。

我渲染的部分

    <div class="post-item">
     <% @tynewyddpost.reverse.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>
   <div class="post-item-panel">
      <ul>
       <li class="date">
        <p><%= date_output(t.published_on) %></p>
       </li>
      </ul>
  </div>
</div>
  <% end %>

控制器

 def tynewyddnews
@title = 'Ty Newydd News'
tynewyddpost = Post.tynewydd_posts.reverse
tynewyddpost.pop
@tynewyddpost = tynewyddpost
@tynewyddpostlatest = Post.tynewydd_posts.first

结尾

范围

scope :tynewydd_posts, :include => :department, :conditions => {"departments.name" => "Ty Newydd"}, :order => "posts.published_on DESC"

我的问题是如何获取我点击的特定帖子。我做不到

<%= @tynewyydpost.title %>

当我得到数组的未定义方法标题时。我知道这里有一点理论,但是在这种情况下如何从数组中获取单个记录

任何帮助表示赞赏

4

2 回答 2

2

您需要传递您点击的帖子的 id:

<p><%= link_to t.title, tynewyddnews_path(:type => 'tynewyddnews', :post_id => t.id), :remote => true %></p>

所以在你的控制器中你可以做

@theposticlickedon = Post.find(params[:post_id])

或者

@theposticlickedon = Post.tynewydd_posts.find(params[:post_id])

但是,您可能还想定义不同的路径来显示单个帖子,而不是链接中的 tynewyddnews_path。

于 2013-04-09T19:38:37.410 回答
1

您需要在此帖子的每个链接 ID 中指定。

例如:

<%= link_to t.title, tynewyddnews_path(:type => 'tynewyddnews'), :post_id=>t.id, :remote => true %>

而不是通过 id 找到它来指定您正在调用的控制器操作

@tynewyddnews=Post.find(params[:post_id])

比你的部分实例@tynewyddnews 将被点击发布

于 2013-04-09T19:39:13.213 回答