Как ранее упомянул самерс, был пост, в котором показано, как просто генерировать представления.Он создаст все виды для вашей модели, используя шаблоны rails по умолчанию, что очень удобно.
Если, как и я, вы хотите что-то более настраиваемое, вы можете достичь следующего.
Вы можете создатьваш собственный генератор, поэтому у вас есть что-то вроде этого.
рельсы генерируют представление NAME VIEW [опции]
Для достижения этого вам необходимо сделать следующее.
rails generate generator view
Это создаст несколько файлов для вас в папке lib / generators / view /.
Откройте файл view_generator.rb и добавьте следующий код.
<code>class ViewGenerator < Rails::Generators::Base
source_root File.expand_path('templates', __dir__)
argument :name, type: :string
argument :action, type: :string
def generate_view
template "#{file_name}.html.erb", "app/views/#{folder_name}/#{file_name}.html.erb"
end
private
def folder_name
name.underscore
end
def file_name
action.underscore
end
def type
name.titleize.singularize
end
def down_type
name.downcase.singularize
end
def render_form
"<%= render 'form', #{down_type}: @#{down_type} %>"
end
def render_link_back
"<%= link_to 'Back', #{folder_name}_path %>"
end
end
Далее вам нужно создать файл, который мы используем с помощью фактического шаблона, используемого в методе generate_view.
Используя в качестве примера новое действие, создайте файл liblib / generators / view / new.html.erb идобавьте следующее.
<h1>New <%= type %></h1>
<%= render_form %>
<%= render_link_back %>
Настройте представление шаблона так, как вы хотите.Вам также необходимо добавить _form.html.erb.Добавьте все дополнительные переменные и логику в файл view_generator.rb, и все готово.
Это больше работы, но может стоить того, если вы все время генерируете подобные представления.
Лучшее использованиеСлучай, который я могу придумать для этого подхода, - это если вы пометили свою платформу белым цветом и вам нужно сгенерировать несколько файлов для профиля клиента.