Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >仅在同一关联资源内将链接限制为前一条记录

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

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

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

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

Word模型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
<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
运行
AI代码解释
复制
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-13 16:11:20

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<% 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
运行
AI代码解释
复制
<%= 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

复制
相关文章
ThreadLocal比FastThreadLocal慢在哪里?
吊打 ThreadLocal,谈谈 FastThreadLocal 为啥能这么快?
公众号 IT老哥
2021/12/22
5200
ThreadLocal比FastThreadLocal慢在哪里?
Python进阶28-Django 模板层(Jinja2)
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.8K0
Python进阶28-Django 模板层(Jinja2)
【愚公系列】2022年01月 Python教学课程 52-Django框架之jinja2模板
Jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,尤其是Flask框架内置的模板语言
愚公搬代码
2022/12/01
1.3K0
【愚公系列】2022年01月 Python教学课程 52-Django框架之jinja2模板
为什么Python比C++慢很多?
话说为什么大家会集中讨论GIL?在这里题主的标准线是一个按bit处理的单线程DFS啊……几乎没有GIL发挥的余地好么……
程序员皮克
2021/12/18
7980
为什么Python比C++慢很多?
Jinja2初探
Jinja2 使用一个名为 Environment 的中心对象。这个类的实例用于存储配 置、全局对象,并用于从文件系统或其它位置加载模板。
lpe234
2020/07/27
5580
Java8 的 String Concatenate 比 StringBuilder Apporaches 慢?
问题1: 文章说,大量 String + 连接比 通过 相应的StringBuilder 连接慢,要是在 Java7 之前我信,可以在 Java8 以及之后,编译器自动帮助我们把 + 优化成 StringBuilder (StringBuffer) 了。难道 Java8 的 String Concatenate 比 StringBuilder (StringBuffer) 慢?带着这样的疑问,决定好好的亲自试验一番。
shengjk1
2020/03/04
6410
Java8 的 String Concatenate 比 StringBuilder Apporaches 慢?
问题1: 文章说,大量 String + 连接比 通过 相应的StringBuilder 连接慢,要是在 Java7 之前我信,可以在 Java8 以及之后,编译器自动帮助我们把 + 优化成 StringBuilder (StringBuffer) 了。难道 Java8 的 String Concatenate 比 StringBuilder (StringBuffer) 慢?带着这样的疑问,决定好好的亲自试验一番。
shengjk1
2020/02/25
3710
Jinja2语法小记
如果user为传入模板中的字典变量,则我们可通过”.“获取它的键值。 eg:user.username user.username等价于user[‘username’]
Cloud-Cloudys
2020/07/06
1.6K0
尤雨溪回应:Vite 真的比 Turbopack 慢 10 倍?
一周前,Vercel 宣布了 Webpack 的基于 Rust 的继任者 Turbopack。
ConardLi
2023/01/09
1.3K0
尤雨溪回应:Vite 真的比 Turbopack 慢 10 倍?
为什么 C++ 的标准输入流比 Python 慢
我想比较一下 C++ 和 Python 的标准输入,但实验的结果让人大吃一惊,C++ 慢了许多。下面是我的实验代码:
ClearSeve
2022/02/10
6640
用数据告诉你 Python 代码比 Java 慢 100 倍!
小伙伴们都知道,在系统的软件开发中,不仅仅是只使用一种语言,也会涉及到不同的语言。
老九君
2019/12/24
3.5K0
Jinja2用法总结
渲染模版时有两种传递参数的方式:用 var='value' 传递一个参数;使用字典组织多个参数,并且加两个*号转换成关键字参数传入。
步履不停凡
2019/09/11
2.1K0
【愚公系列】2022年01月 Django商城项目01-jinja2模板配置
文章目录 一、jinja2模板配置 1.安装jinja2模块 2.修改模板配置 3.全局模板配置 ---- 一、jinja2模板配置 1.安装jinja2模块 pip install jinja2 2.修改模板配置 TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2',# 修改模板引擎 'DIRS': [os.path.join(BASE_DIR,'templates')],# 设置模
愚公搬代码
2022/01/04
3680
Shopee 送命题:进程切换为什么比线程切换慢
注意这里问的是为什么进程切换比线程慢,而不是问为什么进程比线程慢。当然这里的线程肯定指的是同一个进程中的线程。
飞天小牛肉
2022/02/23
6880
Shopee 送命题:进程切换为什么比线程切换慢
在什么情况下,Java比C++慢很多?
垃圾回收器。这是一把“双刃剑”。如果你的程序遵循“大部分对象都在年青代中消亡”模型,垃圾回收器是非常有利的(很少的碎片,更好的缓存局部性)。但是,如果程序不遵循该模型,JVM将花费很多资源来回收堆内存。
哲洛不闹
2018/09/19
9640
尤雨溪回应:Vite 真的比 Turbopack 慢 10 倍吗?
一周前,Vercel 宣布了 Webpack 的基于 Rust 的继任者 Turbopack。
ssh_晨曦时梦见兮
2022/11/14
9940
尤雨溪回应:Vite 真的比 Turbopack 慢 10 倍吗?
为什么FPGA主频比CPU慢,却可以帮其加速?
为什么FPGA主频比CPU慢,却可以帮其加速? 我们知道,FPGA的频率一般只有几百MHz,而CPU的频率却高达数GHz。那么,有不少网友心中就有一个疑问:“为什么FPGA主频比CPU慢,但却可以用来
FPGA技术江湖
2021/04/14
1.7K0
为什么FPGA主频比CPU慢,却可以帮其加速?
Django 常用配置笔记
在配置 Django 项目环境的时候,先自己打印 BASE_DIR 看看路径指向哪,因为会用到很多次这个 BASE_DIR ,了解这个 BASE_DIR 基目录,好在其他配置中使用到更好理解。
忆想不到的晖
2021/12/06
5270
Django 常用配置笔记
Ansible Jinja2 模板使用
3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。
踏歌行
2020/10/15
4.9K0
Ansible Jinja2 模板使用
css加载慢导致加载瞬间白屏(dom比css加载快导致)
2,css样式压缩下,用sass编译一下,放在head顶部,head再用incloud包起来,放在文件夹;
kirin
2020/11/30
2.2K0

相似问题

Django查询比相同Postgres查询慢40倍?

23

比LLT慢?

12

比FPU慢?

35

为什么Django的刷新速度比PHP站点慢?

13

mongodb比sqlite慢4倍,比csv慢2倍?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文