ruby-on-rails - Rails 3 中局部的动态渲染

标签 ruby-on-rails dynamic rendering render partial-views

在我正在开发的应用程序中,我在模型中定义了一个方法 task_types:

task.rb
  def self.task_types
["ad_hoc"]
  end

我使用task_types来填充下拉菜单,但我也想使用它来动态渲染部分菜单。

我的想法是,对于每种任务类型,都会有一个关联的评论框。我继续创建了一个助手,它将根据选择的任务类型调用正确的部分:

#tasks_helper.rb
module TasksHelper

  def completion_comment(task)
    task_types = @task.task_type
    render :partial => "#{Task.task_types}", :locals => {:task => task}
  end
end

不幸的是,当我调用completion_comment时,我收到了错误消息“部分名称([“ad_hoc”])不是有效的Ruby标识符。”

我正在寻找一种动态方式来渲染适当的部分。我认为我走在正确的 rails 上,但我不确定如何从我的 task_types 方法中提取数组元素(正如您在错误消息中看到的那样,括号和引号正在变得拉入渲染操作)。或者,也许我需要利用不同的方法来动态渲染部分。如有任何帮助,我们将不胜感激。

最佳答案

这是有效的:

module TasksHelper

  def render_task_form(task)
    render :partial => "/tasks/completed/#{task.task_type.downcase}"
  end
end

我很早就尝试过这个解决方案,并且收到了一条错误“部分名称 (/tasks/completed/) 不是有效的 Ruby 标识符;请确保您的部分名称以字母或下划线开头,并且后面跟着由字母、数字或下划线的任意组合组成。”

我又试了一次,为了解决这个问题,我从数据库中删除了所有任务。现在部分动态渲染。希望这对其他人有帮助!

关于ruby-on-rails - Rails 3 中局部的动态渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15282882/

相关文章:

c# - PropertyGrid 可以在没有对象的情况下使用吗?

java - JSF:有条件地呈现列表项 (<li>)

ruby-on-rails - Nitrous, Heroku : create new PostgreSQL user, 限制权限

ruby-on-rails - Rails 的词云生成器

Java GridLayout 如何动态改变网格布局

python - Python 中的动态对象类似于 AS3

ios - 在 iOS 中渲染圆圈的最佳技术是什么?

c# - 如何强制平滑呈现 WPF 控件?

ruby-on-rails - 给定 session key 和 secret ,我们如何解密 Rails cookies?

jquery - 如何让flash通知的DIV标签始终在 View 中?