3

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

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

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

如何在“example_page.html.erb”上创建一个按钮来触发此方法以在服务器上执行命令?(这里不用担心安全)

4

2 回答 2

2

1:使用表单标签 创建表单

<%= form_tag('/create_scaffold') do -%>
  <div><%= submit_tag 'Create Scaffold' %></div>
<% end %>

2:编写路由以匹配传入请求。

 match '/create_scaffold', to: 'examples#scaffold_generation', via: :all

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
于 2016-01-04T13:04:47.033 回答
1

如果您正在创建一个按钮或链接,它应该指向一个 url 路径,而不仅仅是一个辅助方法。对此的快速解决方法是添加辅助方法的路径。

所以你可以试试

在帮手

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

并且在视野中

<%= button_to "Scaffold Generation", scaffold_generation(root_path), :method => :get %>
于 2016-01-04T13:13:35.407 回答