gpt4 book ai didi

ruby-on-rails - Ruby on Rails 路线说明

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:16 26 4
gpt4 key购买 nike

我对 Ruby on Rails 并不完全陌生,但它不是我最精通的框架,所以我希望有人能帮助我了解一些我试图理解的代码。

Controller :

def new
@biz = Business.new
end

def apply
@biz = Business.new(business_params)
token = SecureRandom.hex(4)
@biz.verify_token = token
if @biz.save
message = @biz.sentMessages.new
message.send_verify_email
redirect_to waiting_verification_path
else
render 'new'
end
end

路线:

get 'apply', to: 'businesses#new', as: 'apply'
post 'apply', to: 'businesses#apply', as: 'applied'

查看:

= simple_form_for @biz, url: apply_path, html: {autocomplete: "off"} do |f|

我知道路由的第一行将 /apply 处的请求定向到 Controller 中的 new 操作,该操作创建一个新的业务对象并呈现 new View ,我从中包含了一个片段。此代码段包括将成功提交到 apply_path 的表单操作。

我的理解表明此 apply_path 是第一条路线行的命名助手,而我认为它应该指向第二行,其助手将是 applied_pa​​th,然后将由 Controller 上的 apply 操作处理。

真正让我困惑的是这个功能有效。所以提交实际上被路由到第二个路由行,并由 Controller 中的 apply 操作处理。如果您能解释这是如何发生的,我将不胜感激。谢谢。

最佳答案

线

= simple_form_for @bix, url: apply_path

生成类似的东西

<form action="/apply" method="post">
..
</form>

POST 是表单的默认方法,所以当表单被 POST-ed 时,Rails 查看 routes.rb 文件并在这一行找到匹配项。

post 'apply', to: 'businesses#apply', as: 'applied'

如果你是这样做的

= simple_form_for @bix, url: apply_path, method: :get

表单通过 GET 提交,然后 Rails 会在 routes.rb 的第一行找到匹配项。

get 'apply', to: 'businesses#new', as: 'apply'

routes_helpers 的名称是什么并不重要,重要的是生成的 url。我希望这能解决问题,如果没有,请要求更多说明。

关于ruby-on-rails - Ruby on Rails 路线说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24252613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com