ruby-on-rails - 不同类型内容的不同部分

标签 ruby-on-rails ruby ruby-on-rails-3

在 Post 模型中,我有一个属性,如“content_type”。不同类型的帖子应该在同一个列表中以不同的方式显示。目前我只有一个想法:

    <%= 
        @posts.each do |d|
            if d.content_type == "NormalStory"
                render :partial => 'posts/normal', :locals => { :content => d }
            elsif d.content_type == "FotoStory"
                render :partial => 'posts/foto', :locals => { :content => d}
            elsif d.content_type "VideoStory"
                render :partial => 'posts/video', :locals => { :content => d }
            end
        end
    %>

你能给我推荐一些更“优雅”的东西吗?

最佳答案

我会创建一个帮助程序,它从 content_type 中改变部分内容,例如:

def render_post(post)
  template = post.content_type.sub(/Story$/, '').downcase
  render :partial => "posts/#{template}", :locals => { :content => post }
end

关于ruby-on-rails - 不同类型内容的不同部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8273255/

相关文章:

java - Thymeleaf 模板结果缓存

ruby-on-rails - 升级到 Rails 3.2.6 和路由错误

ruby-on-rails - 我如何在 capybara 中单击此按钮

ruby-on-rails - 关于 Rails、Haml 和 Forms 的问题

ruby-on-rails - 处理从支付网关重定向的安全问题

ruby - 为什么模块 `ClassMethods` 在同一个命名空间中定义和扩展?

ruby-on-rails - autoload_paths 不知道 namespace ?

html - 带有属性的随机图像 css

ruby-on-rails - Docker容器中的Rails加密凭据

ruby-on-rails - 在 Ruby on Rails 中使用迁移