gpt4 book ai didi

ruby-on-rails - ruby on rails 中的实例变量与符号 (form_for)

转载 作者:行者123 更新时间:2023-12-04 00:49:12 25 4
gpt4 key购买 nike

我是 ruby​​ on rails 的新手,正在 mac osx 上使用 2.3 版。
我正在尝试创建与脚手架创建的功能相同的功能,但要靠我自己。
我创建了一个“post” Controller 、 View 和模型。
在后 Controller 中,我有以下内容:

class PostController < ApplicationController
def index
end

def new
@post = Post.new
end
end

在 new.html.erb 中,我有以下内容:
<h1>New Post</h1>

<% form_for :post do |f| %>

<%= f.text_field :title %>

<% end %>

我注意到在脚手架生成的代码中,将实例变量 @post 用于 form_for 助手。如果在 form_for 中传递符号 :post 做完全相同的事情,而符号需要更改路由的配置,为什么他们在脚手架生成的表单中使用实例变量?

非常感谢你,
尤瓦尔

最佳答案

如果您使用符号 :post 它会创建

<form action="/posts" method="post">

如果您使用实例@post

对于@post = Post.new 你会得到
<form action="/posts/create" class="new_account" id="new_account" method="post">

对于@post = Post.find(1) 你会得到
<form action="/posts/update" class="edit_account" id="edit_account_1" method="post">
<input name="_method" type="hidden" value="put">

如果您的新表单和编辑表单不同,没什么大不了的,但更可能的是,您的新表单和编辑表单将相同或接近

因此,如果您使用实例变量 @post,您可以将所有表单代码放入 _form 并调用部分代码,它会根据您传入新记录还是现有记录来处理其余部分

关于ruby-on-rails - ruby on rails 中的实例变量与符号 (form_for),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957204/

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