在" new"中按下提交按钮后在导轨中我自动来到"创建" (类似于"编辑"到"更新")。我所有的参数都进入了#34; new"可用于"创建"。这是默认情况。 如果我有" export"而不是" new"和" process_export"而不是"创造" - 如何达到类似的效果?
答案 0 :(得分:0)
Rails遵循Convention over Configuration
概念。当Rails 4中出现类似的REST
时,将自动从控制器调用request
的7种方法。例如:GET
请求将调用新方法,POST
将调用create方法,DELETE
将调用destroy方法等。
现在,如果您在custom method
controller
中创建export
,如果您想在点击submit
按钮后调用它,则必须在routes
文件中相应地设置routes.rb
。可以这样做:
post "/chats" => "chats#export"
此处chats
是controller
,而export
是您要在submit
操作中调用的控制器中的方法。
你可以这样做:
$ > rails g scaffold Controller_name
这将自动生成控制器中的所有7种REST方法,并生成类似的路由,您可以通过执行以下操作来检查:
$ > rake routes
我希望这会有所帮助。
答案 1 :(得分:0)
如果我说得对,你不想将表单发送到默认的create
操作,而是发送到另一个,在您的示例中发送到process_export
操作。
您只需在routes.rb
中创建路线并设置自定义表单操作网址。
示例:强>
的routes.rb
get '/process_export' => 'your_controller#export' # replace `your_controller` with your controller name
post '/process_export' => 'your_controller#process_export', as: :process_export
在export
视图中:
<%= form_for :resource, url: process_export_path do |f| %> <!-- Replace resource with your proper resource -->
<!-- Your form here -->
<% end %>
但我强烈建议您遵守REST的惯例。它让你的生活变得更轻松。
这里有两个资源可以更详细地解释它: