Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用没有关联模型的表演者(Ryan Bates的风格)

使用没有关联模型的表演者(Ryan Bates的风格)
EN

Stack Overflow用户
提问于 2013-12-10 11:25:02
回答 1查看 296关注 0票数 0

我想使用演示程序(如这里所示:http://railscasts.com/episodes/287-presenters-from-scratch?view=asciicast)来清理我的static_pages视图,但是他的方法似乎依赖于底层模型,而static_pages没有这种模型。可以将此方法用于静态主页吗?

我的用户设置(运行良好并具有相应的模型)如下所示:

Presenter:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class UserPresenter < BasePresenter
  presents :user
    def h
      @template
    end

    def admin_text
      if user.admin?
        'This is an admin'
      else
       'This is not an admin'
      end
    end
end

Users/Show:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<% present @user do |user_presenter| %>
    <div class="row">
       <dl>
          <dt>Username:</dt>
          <dt><%= @user.username %></dt>
          <dt>Email:</dt>
          <dt><%= @user.email %></dt>
          <dt><%= user_presenter.admin_text %>
        </dl>
    </div>
<% end %>

我想使用类似的结构来清理我的_header部分,它在application.html.erb中呈现,其中一部分如下所示:

from _header.html.erb:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<% if current_user && current_user.admin? %>
  <li><a href="#">All Notes</a></li>
<% end %>

如何使用演示者将此逻辑移出视图,并让视图显示如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
static_presenter.admin_all_notes

home.html.erb提供必要的视图代码

我不确定我是以最好的方式问这个问题的,但我的目标是像Ryan那样使用演示程序来清理我的static_pages视图,这些视图没有相应的模型。

谢谢!

编辑:

我对如何包装静态页面(例如home.html.erb)和传递给块的内容特别感到困惑,接下来是如何从静态页面引用演示器类中的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-10 12:27:50

你可以用同样的方法。您只需要为演示者选择一个名称(例如static_presenter),并且不会将模型的实例传递给初始化,因为您呈现的是静态或全局信息。否则,方法是相同的。

所以对于你现在的班级,我想你可以:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class StaticPagesPresenter

  def initialize(template)
    @template = template
    yield self if block_given?
  end

  def h
    @template
  end

  def admin_notes
    if h.current_user && h.current_user.admin?
       '<li><a href="#">All Notes</a></li>'
    end
  end

end

然后,在标题部分中,您可以得到如下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<% StaticPagesPresenter.new(self) do |presenter| %>
<%   presenter.admin_notes %>
<% end %>

我假设有Rails助手可以作为当前admin_notes中的HTML的替代品,我不确定是否需要使用h.来引用current_user

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

https://stackoverflow.com/questions/20503445

复制
相关文章
LowPloy风格的模型导入
LowPloy风格是一种小清新风格, 在美术设计上很有独特性. 典型的游戏作品有《纪念碑谷》《劳拉Go》等 2016上半年我们也进行过尝试, 从程序的角度来说, 这种风格是一种利好, 因为可以
逍遥剑客
2018/05/09
1.4K0
Django 2.1.7 模型的关联
上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的F对象、Q对象、聚合查询等功能。
Devops海洋的渔夫
2019/06/17
1.5K0
Django 2.1.7 模型的关联
19. Django 2.1.7 模型的关联
上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的F对象、Q对象、聚合查询等功能。
Devops海洋的渔夫
2022/01/17
7910
19. Django 2.1.7 模型的关联
TP6.0 模型的关联删除
1、在删除文章的同时删除下面的评论 2、 删除用户的同时删除用户的多条评论和多条操作日志
很酷的站长
2023/01/02
8690
TP6.0 模型的关联删除
TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)
如果要获得分类表中每条分类 以及 对应的商品的信息,则需要先查询分类表中的数据,然后根据结果遍历查询商品表,最后把数据拼接在一起
全栈程序员站长
2022/07/08
1.5K0
TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)
DDD工程代码模型的几种包风格
在团队中,一直在灌输DDD的理念,最近review一些新开发的项目时,发现工程包结构每个人的理解都是不一样的,命名也是各有特色。
码农戏码
2022/11/18
1.4K1
DDD工程代码模型的几种包风格
CVPR 2021 | 基于模型的图像风格迁移
本文从另外一个角度解读,澳洲国立大学郑良老师实验室CVPR 2021新工作《Visualizing Adapted Knowledge in Domain Transfer》。一般而言,我们需要同时利用 两张图片 完成图像的风格迁移(style transfer):一张图片指导内容(content);一张图片指导风格(style)。在本文中, 我们探寻如何在仅利用一张图片作为内容指导的情况下,通过训练好的模型作为指导,将该图片迁移至一种未曾见过的风格。我们首先展示一些示例结果,如下图,在只利用目标(target)图片的情况下,我们可以将其有效迁移至未曾见过的源(source)图片风格。
公众号机器学习与AI生成创作
2021/05/20
2.9K0
DotNetBar的使用—(界面风格)
C# WinForm项目中自带的窗体风格很普通,一点都不美观。DotNetBar就是一套.NET美化控件库,有70几个控件以及多种界面的皮肤风格。关于控件的效果在官网上进行查看http://www.devcomponents.com/dotnetbar/。下面就来介绍一下如何使用DotNetBar来改变窗体的风格。
zls365
2020/08/19
2.2K0
DotNetBar的使用—(界面风格)
神经风格迁移模型综述
神经风格迁移技术主要用于对图像、视频等进行风格化,使其具有艺术美感,该领域极具应用价值,是人工智能的热门研究领域之一。为推动神经风格迁移领域的研究发展,对神经风格迁移技术进行了全面概述。简述了非真实感渲染技术和传统的纹理迁移技术。对现有神经风格迁移模型进行了分类整理,并详细探讨了各类代表性模型的算法原理及后续改进,分析了神经风格迁移技术的应用市场。提出对风格迁移模型质量的评判应该从定性评估和定量评估两个方面来考虑,并从各个角度讨论了现阶段风格迁移技术存在的问题以及未来研究方向。最后强调应提高模型的综合能力,在保证生成质量的情况下提升生成速度以及泛化能力。
数据派THU
2021/10/19
8090
Node.js 如何应对来自 Ryan Dahl 的 Deno 的挑战
开源JavaScript运行时Node.js上周发布了第15版。经历了11年个年头,Node.js一如既往地受欢迎,但是在2020年,一个竞争对手横空出世。Deno是今年5月份发布的开源JavaScript运行时,由Node.js的原作者Ryan Dahl创建。把Deno说成是Node的竞争对手,好像有点不恰当(译者:毕竟Ryan Dahl可是被大家称作Node之父),因为Deno的创建是专门为了解决Dahl所认为的Node.js的致命缺陷而设计的,包括安全性问题,使用集中依赖管理系统(npm)和“笨重的工具。”
五月君
2020/11/11
1.2K0
Node.js 如何应对来自 Ryan Dahl 的 Deno 的挑战
mybatis 多表查询,关联模型
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/17
9840
mybatis 多表查询,关联模型
python-Django-Django 模型层的关联关系(二)
在上面的代码中,我们首先获取一个Person实例,然后通过它的address属性获取关联的Address实例。
玖叁叁
2023/04/23
4840
python-Django-Django 模型层的关联关系(一)
Django是一个流行的Python Web框架,其模型层允许开发人员定义数据库模型以及它们之间的关系。这些关系被称为模型关联关系,允许开发人员在不同的模型之间建立复杂的关联关系,从而实现更高级别的数据结构。
玖叁叁
2023/04/23
7220
Spring Boot JPA中关联表的使用
本文中,我们会将会通过一个Book和Category的关联关系,来讲解如何在JPA中使用。
程序那些事
2020/07/08
2.1K0
Laravel源码分析之模型关联
上篇文章我们主要讲了Eloquent Model关于基础的CRUD方法的实现,Eloquent Model中除了基础的CRUD外还有一个很重要的部分叫模型关联,它通过面向对象的方式优雅地把数据表之间的关联关系抽象到了Eloquent Model中让应用依然能用Fluent Api的方式访问和设置主体数据的关联数据。使用模型关联给应用开发带来的收益我认为有以下几点
KevinYan
2019/10/13
9.6K0
Laravel Eloquent 模型关联关系(下)
在前面两篇教程中,学院君陆续给大家介绍了 Eloquent 模型类支持的七种关联关系,通过底层提供的关联方法,我们可以快速实现模型间的关联,并且进行关联查询。今天我们将在定义好模型关联的基础上进行关联查询、插入和更新操作,看看如何借助模型关联提高代码的可读性并提高编码效率。
学院君
2023/03/03
19.6K0
Laravel Eloquent 模型关联关系(下)
使用 TFLite 在移动设备上优化与部署风格转化模型
文 / Khanh LeViet 和 Luiz Gustavo Martins,技术推广工程师
CV君
2020/05/27
1.7K0
使用 TFLite 在移动设备上优化与部署风格转化模型
点击加载更多

相似问题

父模型id未传递,使用ryan bates嵌套窗体

14

呈现错误而不更改链接- Ryan Bates - RAILS

110

Ryan bates nested_form gem和javascript函数

13

使用Ryan Bates的CanCan授权插件时出现current_user错误

11

Ryan Bates在他的条纹轨道广播教程中使用了什么角色系统?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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