Rails scaffold_controller生成器不会将模型属性应用于视图

Yar*_*rin 19 ruby-on-rails

我在具有现有属性的现有模型上使用scaffold_controller生成器,但生成的视图表单没有相应模型属性的任何输入控件 - 它们只是空表单.这是为什么?

例如:

rails generate scaffold_controller User --skip --no-test-framework
Run Code Online (Sandbox Code Playgroud)

如果用户已经拥有nameemail属性应该生成的姓名和电子邮件领域的形式...

小智 36

这就是应该做的.当scaffold_controller你打电话告诉发电机不使用模型时.如果要在视图中使用表单属性,则需要将它们传递给生成器,就像使用普通的脚手架一样.

rails g scaffold_controller User name email
Run Code Online (Sandbox Code Playgroud)

  • 您可以从控制台获取列列表:`Model.column_names.join("")` (5认同)
  • 仍然比替代品好很多;) (2认同)

小智 6

在 rails 5 中,您可以使用以下代码获取具有类型的列列表。

Model.columns.reject{|n| n.name == "id" or n.name == "created_at" or n.name == "updated_at" }.map{|i| "#{i.name}:#{i.type}"}.join(" ")
Run Code Online (Sandbox Code Playgroud)

稍后您可以粘贴输出 post rails gscaffold_controller模型