Ruby on rails 3 将参数传递到生成器中的Rails 3模板
在Rails 2生成器中,可以通过以下方式将数据传递到:Ruby on rails 3 将参数传递到生成器中的Rails 3模板,ruby-on-rails-3,templates,code-generation,generator,Ruby On Rails 3,Templates,Code Generation,Generator,在Rails 2生成器中,可以通过以下方式将数据传递到: record.template( "src.html.erb", "dest.html.erb", :assigns => { :id => id, :name => name } 在Rails3中,它看起来像是新方法。不幸的是,它看起来像第三个参数,config,只接受:verbose选项。试图通过:赋值传递值似乎不起作用 有人知道我如何将动态值传递给Rails 3模板吗?Rails 3模板可以访问生成器
record.template(
"src.html.erb",
"dest.html.erb",
:assigns => { :id => id, :name => name }
在Rails3中,它看起来像是新方法。不幸的是,它看起来像第三个参数,config
,只接受:verbose
选项。试图通过:赋值传递值似乎不起作用
有人知道我如何将动态值传递给Rails 3模板吗?Rails 3模板可以访问生成器中的任何方法,因此在上述情况下,如果生成器有方法名和方法id,则不必更改模板中的任何内容。查看RailsCast以在Rails 3中创建生成器。将参数传递到Rails 3中视图的示例
模板:
#
找到我
我有一个循环,每个循环都有一个变量,该变量需要传递给模板,以生成具有多个名称的相同模板。为了解决这个问题,我在一个全局范围内定义了迭代值(通过@
符号,不确定调用了什么),然后在生成器中创建了一个只返回这个值的方法。这个方法可以被模板访问。很好!可以在标准rails脚手架生成命令行中传递操作吗?
# ...
actions.each do |action|
@action = action
@path = File.join(base_path, filename_with_extensions(action))
template filename_with_extensions(:view), @path
end
<h1><%= class_name %>#<%= @action %></h1>
<p>Find me in <%= @path %></p>