首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >仅在同一关联资源内将链接限制为前一条记录

仅在同一关联资源内将链接限制为前一条记录
EN

Stack Overflow用户
提问于 2016-06-13 23:54:58
回答 1查看 41关注 0票数 1

我有课和字的模型,在那里,一节课有很多单词。在每个课程视图中,用户可以访问属于该课程的单词的显示视图。

我已经为我的显示视图实现了“以前”和“下一步”链接,遵循了this post的想法。然而,课程的第一个单词显示了一个“前一个”链接,它链接到另一个课程的最后一个单词;一个课程的最后一个单词类似地链接到另一个课程的第一个单词(唯一的例外是数据库的第一个和非常最后的单词)。如何将上/下一次链接仅限于属于当前课程的单词?

Word模型:

代码语言:javascript
代码运行次数:0
运行
复制
class Word < ActiveRecord::Base
  belongs_to :lesson

  def previous
    Word.where(["id < ?", id]).last
  end

  def next
    Word.where(["id > ?", id]).first
  end
end

文字显示视图:

代码语言:javascript
代码运行次数:0
运行
复制
<div class="col-xs-10 col-xs-offset-1">
  <h1 class="text-center"><%= current_word.term %></h1><br>

  <%= image_tag(current_word.image, class: 'img-responsive') %><br>

  <p class="text-center">(<%= current_word.reference %>)</p><br>

  <%= link_to "< Previous", current_word.previous if current_word.previous %>
  <%= link_to "Next >", current_word.next if current_word.next %>
</div>

文字控制器:

代码语言:javascript
代码运行次数:0
运行
复制
class WordsController < ApplicationController
  def show
  end

  private

    helper_method :current_word
    def current_word
      @current_word ||= Word.find(params[:id])
    end
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-14 00:11:20

在你看来,你能这样做吗?

代码语言:javascript
代码运行次数:0
运行
复制
<% if current_word == Word.first %>
  <%= link_to "Next >", current_word.next if current_word.next %>
<% elsif current_word == Word.last %>
  <%= link_to "< Previous", current_word.previous if current_word.previous %>
<% else %>
  <%= link_to "< Previous", current_word.previous if current_word.previous %>
  <%= link_to "Next >", current_word.next if current_word.next %>
<% end %>

编辑

所以试试,

代码语言:javascript
代码运行次数:0
运行
复制
<%= link_to "< Previous", current_word.previous if current_word.previous.lesson_id == current_word.lesson.id %>
<%= link_to "Next >", current_word.next if current_word.next.lesson_id == current_word.lesson.id %>

这样,只要下一个单词或前面的单词来自不同的教训(有不同的lesson_id,链接就会消失)。

如果能用,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37800903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档