【发布时间】:2013-03-07 22:18:55
【问题描述】:
在我正在开发的应用程序中,我在模型中定义了一个方法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 时,我收到了错误消息"The partial name (["ad_hoc"]) is not a valid Ruby identifier."
我正在寻找的是一种动态的方式来呈现适当的部分。我认为我在正确的轨道上,但我不确定如何从我的 task_types 方法中提取数组元素(正如您在错误消息中看到的那样,括号和引号被拉入渲染操作)。或者,也许我需要使用不同的方法来动态渲染部分。任何帮助表示赞赏。
【问题讨论】:
-
如果字符串有效,可能是一个符号?尝试
:ad_hoc而不是"ad_hoc"。还是拥有一个字符串对象很重要? ...哦,我明白了:我认为问题出在数组...:-/ -
同样的问题(部分名称 ([:ad_hoc]) 不是有效的 Ruby 标识符)...我想知道我的 task_types 定义中是否有可以调用的方法,或者我有什么方法当我尝试渲染部分时要做的事情。
-
数组不能被接受为部分名称。
-
@ValeryKvon - 是的,这就是我遇到的问题......我想传递数组的元素,而不是数组本身,但我不确定我应该如何进行。如果我必须改进我的整个方法,那很好。
-
什么意思:传递数组的元素,比如什么?
标签: ruby-on-rails dynamic rendering render partial-views