如何在Rails中为现有模型生成表单?

时间:2011-07-11 00:39:20

标签: ruby-on-rails ruby ruby-on-rails-3 generator

现有 模型生成单个文件(_form.html.erb)的命令是什么?

使用Rails 3。

感谢。

4 个答案:

答案 0 :(得分:12)

这可能听起来很傻,但是听我说......当我想要开始清洁的时候,我已经做了几次这样的事情。以下是一个脚本,它将读取您的模式并生成必要的生成命令以重现它:

require 'rubygems'
require 'active_support/core_ext'
schema = File.read('db/schema.rb')
schema.scan(/create_table "(\w+)",.*?\n(.*?)\n  end/m).each do |name, ddl|
  puts "rails generate scaffold #{name.classify} " +
    ddl.scan(/t\.(\w+)\s+"(\w+)"/).
    reject {|type,name| %w(created_at updated_at).include? name}.
    map {|type,name| "#{name}:#{type}"}.join(' ')
end

如果你运行它,你将获得一系列命令。在新目录中,创建一个新的rails应用程序,然后运行这些命令(只需复制和粘贴它们即可)。抓取你想要的文件。完成后删除目录。

答案 1 :(得分:2)

我不相信有一个生成单个文件的命令......只有整个脚手架。

您是否有理由要生成该文件?你不确定内容应该是什么吗?

答案 2 :(得分:2)

您可以使用此“反向支架”脚本:

  

https://github.com/ahe/reverse_scaffold

它将在app / views文件夹中生成所需的html.erbb文件。

在自述文件页面上已经很好地解释了。

并且,它已针对Rails 3.2进行了更新

答案 3 :(得分:1)

如果您还没有适用于您的模型的控制器,您可以生成控制器,指定您的入口点,它会为您创建视图,但是,如果您想要已经写入_form.html。*文件使用“丑陋”的默认视图,您可能必须使用scaffold来执行此操作。

这是一个很好的guide on generators and other rails command line options