在"提交"之后采取了什么行动?

时间:2015-11-26 03:10:54

标签: ruby-on-rails

在" new"中按下提交按钮后在导轨中我自动来到"创建" (类似于"编辑"到"更新")。我所有的参数都进入了#34; new"可用于"创建"。这是默认情况。 如果我有" export"而不是" new"和" process_export"而不是"创造" - 如何达到类似的效果?

2 个答案:

答案 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" 

此处chatscontroller,而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的惯例。它让你的生活变得更轻松。

这里有两个资源可以更详细地解释它: