Ruby on rails (Rails 4.2)如何从视图触发脚手架生成?

Ruby on rails (Rails 4.2)如何从视图触发脚手架生成?,ruby-on-rails,ruby,ruby-on-rails-4,rails-generators,Ruby On Rails,Ruby,Ruby On Rails 4,Rails Generators,如何从视图触发脚手架生成 例如,假设我有这样一个方法: def scaffold_generation system "rails g scaffold TodoList task author" end 如何使“example_page.html.erb”上的按钮触发此方法以在服务器上执行命令?(此处无需担心安全性)1:使用 3: class ExamplesController < ApplicationController def scaffold_generation

如何从视图触发脚手架生成

例如,假设我有这样一个方法:

def scaffold_generation
  system "rails g scaffold TodoList task author"
end

如何使“example_page.html.erb”上的按钮触发此方法以在服务器上执行命令?(此处无需担心安全性)

1:使用

3:

class ExamplesController < ApplicationController

   def scaffold_generation
      system "rails g scaffold TodoList task author"
      system "rake db:migrate" #=> use this so that, it won't throw any errors.
      render :text => "Whoa !!! Done"
   end
end
类示例控制器使用此选项,这样它就不会抛出任何错误。
render:text=>“哇!!!完成”
结束
结束

如果要创建按钮或链接,则应将其指向url路径,而不仅仅是帮助器方法。解决这个问题的一个快速方法是向helper方法添加路径

所以你可以试试

在助手中

def scaffold_generation(url)
  system "rails g scaffold TodoList task author"
  url
end
以及

<%= button_to "Scaffold Generation", scaffold_generation(root_path), :method => :get %>
:获取%>

为什么要这样做?你想达到什么目标?动态调用
rails生成scaffold
没有多大意义。一旦运行了它,所有内容都将被创建,并且您不能再次运行该生成器。此外:Is不运行迁移,将在下次部署时删除……这正是我开始工作所需的示例。我有一个系统,在这个系统中,我必须创建很多CRUD来审核公司的信息,除了数据外,大多数CRUD都是完全相同的,因此我将使用生成器动态准备MVC结构和一些脚本来调整/清理视图,并添加样式、过滤器、功能、测试和文档,为了最大限度地减少工作量,我只需要在涉及业务逻辑或非常具体的事情时工作,这将为我节省大量重复工作的时间。
def scaffold_generation(url)
  system "rails g scaffold TodoList task author"
  url
end
<%= button_to "Scaffold Generation", scaffold_generation(root_path), :method => :get %>