首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于Rails中的对象类型呈现模板

基于Rails中的对象类型呈现模板
EN

Stack Overflow用户
提问于 2013-04-05 16:16:44
回答 1查看 238关注 0票数 1

我正在写一个小论坛应用程序,用户可以创建不同类型的论坛。例如,公告、讨论或问题论坛。

论坛模型有许多帖子和一个forum_type专栏。我想在@post.forum_type列的基础上使用不同的模板来呈现posts#show

因此,根据论坛的类型,每个论坛的帖子都会有不同的外观。

我怎样才能做到这一点而不用if @post.forum_type == 'something'来乱写代码呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-05 16:32:10

委派。编写一个帖子渲染器,然后为每个论坛类型实现一个具体的渲染器子类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Post
  attr_accessor :forum_type       
end

class BaseRenderer
  def renderer_for(post) 
    # create the correct renderer for the post here
  end

  def render_post(post)
    renderer = renderer_for(post)
    renderer.to_html  # return the results
end

class ForumAPostRenderer
  def initialize(post)
    @post = post
  end

  def render
    # render the post for forum A here\
  end
end

class ForumBPostRenderer
  def initialize(post)
    @post = post
  end

  def render
    #render post for forum B here
  end
end

这意味着您只需实现一个渲染器并在renderer_for方法中添加一点逻辑,就可以轻松地为不同的论坛设置皮肤。

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

https://stackoverflow.com/questions/15838758

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文