在“新建”按下提交按钮后,我会自动进入“创建”(类似“编辑”到“更新”后)。我所有的参数都可以在“创建”中找到。这是默认的。 如果我有“导出”而不是“新建”和“process_export”而不是“创建” - 如何达到类似的效果?“提交”后有什么操作?
-3
A
回答
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的约定。它让你的生活变得更轻松。
这是一些解释比较详细两个资源:
0
导轨遵循Convention over Configuration
的概念。当类似的request
出现在Rails 4中时,将自动从控制器调用REST
的7种方法。例如:GET
请求会调用新方法,POST
会调用create方法,DELETE
会调用destroy方法等。
现在,如果你正在创建一个custom method
你controller
像export
,如果你想在submit
按钮点击之后调用它,你必须在routes.rb
文件中设置相应routes
。这是可以做到:
post "/chats" => "chats#export"
这里,chats
是controller
和export
是要在submit
行动调用该控制器的方法。
你可以这样做:
$ > rails g scaffold Controller_name
,这将自动生成所有在你的控制器7种REST方法和类似的路线产生,你可以通过做检查:
$ > rake routes
我希望这帮助。
相关问题
- 1. 当提交表单操作后没有遵循提交代码
- 2. 为什么TextBox提交后提交reactjs
- 3. jQuery:提交后重置表单操作
- 4. 上提交操作
- 5. “提交”和“提交工作”有什么区别?
- 6. 什么是=后跟==操作?
- 7. 延迟提交,执行操作,然后提交
- 8. 为什么git提示我提交后合并提交消息?
- 9. 为什么文件操作阻止SharedPreferences的提交
- 10. 什么操作可以导致HTML FORM元素提交?
- 11. 提交json到MVC3操作
- 12. 表单提交操作
- 13. MVC提交按钮操作
- 14. Silverlight提交操作失败
- 15. 停止提交操作
- 16. 多个提交操作
- 17. AutoHotKey - GUI提交然后做点什么
- 18. javascript:为什么缺少名字后。操作员提示出现
- 19. 在GitHub提交响应中,作者和提交者有什么区别?
- 20. 作业:什么提交的Rails项目
- 21. IntelliJ在后台执行什么操作?
- 22. tsql!>操作符有什么作用?
- 23. - >< - 操作符有什么作用?
- 24. 这个Lambda操作有什么作用?
- 25. $操作符有什么作用?
- 26. * =操作符有什么作用?
- 27. 为什么有些提交显示为“在GitHub上”提交?
- 28. 有什么策略来提交TFS提交?
- 29. PHP:为什么变量在提交后没有被重载?
- 30. Wicket提交操作不起作用
谢谢,托比亚斯,试图帮助,但我仍然无法得到工作的例子。作为管理服务的一部分,我希望导出和导入项目的重要表格。我创建了控制器,放到'新'动作选择框中选择表格,并在提交后放入'创建'导出过程中。现在我必须为导入做同样的事情。我看到2种方法:将第二个提交按钮放入'新建'或使用'new2'和'create2'操作。我选择了第二种方式,但在提交'new2'后,我不会自动进入'create2'。我明白解决方案是在'routes.rb'中添加行,但语法有问题。 – sergey
我强烈建议你为导入和导出创建两个控制器,因为这是两个不同的行为,它们的行为也不同。所以例如一个'ImportController'和'ExportController'。通过这种方式,他们中没有一个阻碍另一个,它具有很好的可扩展性。 – Tobias
非常感谢,很简单!你是对的:更好地找到替代解决方案,而不是避免默认选项的调查。 – sergey