ruby-on-rails - rails : form_for routes won't display a good form

标签 ruby-on-rails ruby ruby-on-rails-3 form-for

我是 Rails 3 的新手,遇到了一些我认为很容易解决的问题。 我一直在关注 Head First:Rails 中的示例,但得出的结论是他们使用的是 rails 2。

我做了一个这样的 html.erb 文件:

<h1>New user</h1>
<% form_for(@user, :url=>{:action=>'create'}) do |f| %>
  <p>Fullname: <%= f.text_field :fullname%></p>
  <p>Username: <%= f.text_field :username%></p>
  <p>Email: <%= f.text_field :email%></p>
  <p>Password: <%= f.text_field :password%></p>
  <p><%= f.submit "Create" %></p>
<% end %>

我想在我转到 http://localhost:3000/users/new 时显示此表单所以我添加了一条这样的路线:

resources :users
match "users/new" => "users#new"
match "users/create" => "users#create"

当我转到该地址时,它会显示一个带有 H1 header 的网页:新用户,但不会显示任何其他内容。

我忘记了什么?

最佳答案

resources :users已经包含

match "users/new" => "users#new"
match "users/create" => "users#create"

因此您可以安全地删除它们。表单不显示,因为如果你想显示 ruby​​ 代码的执行结果,你应该使用以下结构 <%= %> . <% %>只代表代码执行,不代表显示。

所以你的新 View 应该是这样的

<h1>New user</h1>
<%= form_for(@user, :url=>{:action=>'create'}) do |f| %>
  <p>Fullname: <%= f.text_field :fullname%></p>
  <p>Username: <%= f.text_field :username%></p>
  <p>Email: <%= f.text_field :email%></p>
  <p>Password: <%= f.text_field :password%></p>
  <p><%= f.submit "Create" %></p>
<% end %>

关于ruby-on-rails - rails : form_for routes won't display a good form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993821/

相关文章:

ruby - 当我已经在使用 %r 时,为什么 rubocop 要求我放置//围绕正则表达式?

ruby - Chef/Vagrant/Serverspec : specs ensuring that packages are installed fail, 但它们已安装

javascript - 恢复使用原型(prototype)

ruby-on-rails - ruby on rails has_many :through association which has two columns with same model

ruby-on-rails - 优化 Sidekiq、Redis、Heroku 和 Rails

javascript - Rails Assets 管道 - 仅将 jquery 添加到 head

ruby-on-rails - Rails 3 路由处理多个非必需参数

ruby-on-rails - 没有 Devise 的 Omniauth 和 google oauth2 错误 - Rails 4

ruby-on-rails - Actionmail Net::SMTPServerBusy - 发件人地址被拒绝:找不到域

ruby-on-rails - Rails 中的多线程 : Circular dependency detected while autoloading constant