gpt4 book ai didi

ruby-on-rails - form_for 如何决定对特定请求采取什么操作?

转载 作者:行者123 更新时间:2023-12-04 05:32:45 29 4
gpt4 key购买 nike

我写了以下代码:-

<%= form_for(:session,url: login_path) do |f| %>

翻译成

<form action="/login" accept-charset="UTF-8" method="post">  

我的 routes.rb 文件包含以下代码:-

root 'static_pages#home' 
get 'contact'=>'static_pages#contact'
get 'about'=>'static_pages#about'
get 'help' => 'static_pages#help'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
post 'login' => 'session#create'
delete 'logout' => 'session#destroy'
resources:users

我想知道 form_for 的 Action 是如何决定的?

最佳答案

在这里,你没有指定实例对象(@model_name),它只是将表单路径分配给你提供的路径:login_path,方法只输出“/登录”。

有两条路线

get 'login' => 'sessions#new'
post 'login' => 'session#create'

但是由于 form_for 默认的 HTTP 动词是 post,Rails 将传入的 post 请求与 'login' => 'session#create' 匹配。

方法 login_path 是在您提供字符串 'login' 时自动定义的,除非您指定其他内容,例如 post 'login' => 'session#create' ,如:“sign_in”,这将执行 sing_in_path

它是 Rails 向后元编程的一部分。

关于ruby-on-rails - form_for 如何决定对特定请求采取什么操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35683822/

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