Передача параметров в шаблон Rails 3 в генераторе - PullRequest
2 голосов
/ 20 апреля 2011

В генераторах Rails 2 можно передавать данные в шаблон следующим образом:

record.template(
  "src.html.erb",
  "dest.html.erb",
  :assigns => { :id => id, :name => name }

В Rails 3 похоже, что template - это новый метод. К сожалению, похоже, что третий параметр, config, принимает только параметр :verbose. Попытка передать значения через :assigns, похоже, не работает.

Кто-нибудь знает, как я могу передать динамическое значение в свой шаблон Rails 3?

Ответы [ 2 ]

4 голосов
/ 30 августа 2011

Пример передачи параметров в представления в Rails 3.

https://github.com/rails/rails/blob/master/railties/lib/rails/generators/erb/controller/controller_generator.rb

# ...
actions.each do |action|
  @action = action
  @path = File.join(base_path, filename_with_extensions(action))
  template filename_with_extensions(:view), @path
end

Шаблон:

https://github.com/rails/rails/blob/master/railties/lib/rails/generators/erb/controller/templates/view.html.erb

<h1><%= class_name %>#<%= @action %></h1>
<p>Find me in <%= @path %></p>
0 голосов
/ 30 апреля 2011

Шаблоны Rails 3 имеют доступ к любым методам в генераторе, поэтому в приведенном выше случае, если в вашем генераторе есть метод name и метод id, вам не придется ничего менять в своем шаблоне. Посмотрите RailsCast для создания генераторов в Rails 3 на http://railscasts.com/episodes/218-making-generators-in-rails-3.

...