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

我刚刚在rails上使用 ruby,并且在Mac OSX上使用2.3版本.
我正在尝试创建一个脚手架创建的相同的功能,但是我自己.
我创建了一个“post”控制器,查看和模型.
后台控制器中,我有以下内容
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 %>

我注意到在脚手架生成代码中,为form_for帮助使用了实例变量@post.为什么在脚本生成表单中使用实例变量,如果传递符号:在form_for中的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">

如果你有不同的形式为你的新的和你的编辑没有什么大不了,但更多的likey而不是你的新的和你的编辑表单将是相同或接近它

所以如果你使用实例变量@post,你可以把所有的表单代码放入_form,只需调用partial,它会处理其余的,如果你传入新记录或现有记录

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...