Rails 中 #<#<Class:0x007f05d8ec12d0>:0x007f05d8fa9be8> 的未定义方法

undefined method for #<#<Class:0x007f05d8ec12d0>:0x007f05d8fa9be8> in Rails

您好,我是 rails ruby 的初学者,我正在制作一份用于获取学生信息的表格。我在这里遇到的问题:

我的查看代码是:

    <div class="row">
      <div class="col-md-6 col-md-offset-3">
       <%= form_for(@userinfo)  do |f| %>
         <%= render 'shared/error_messages' %>
         <%= f.label :name %>
         <%= f.text_field :name, class: 'form-control'  %>
         <%= f.submit "Create my account", class: "btn btn-primary" %>
       <% end %>
     </div>
    </div> 

我的控制器代码是:

     def new
       @userinfo= Userinfo.new
     end 

我的路线是:

     get 'about' => 'userinfo#new'

我收到错误:"undefined method `userinfos_path' for #<#:0x007f05d8fa9be8> "

我是初学者。如何解决这个问题呢。需要帮忙。谢谢。

您没有用户信息的路由。

尝试在您的 config/routes.rb 中添加:

resources :userinfos

希望对您有所帮助。

它给你例外的原因是你只是在你的视图中使用 form_for(@userinfo),它会智能地为你生成表单操作。

很简单,你可以指定表单属性,比如 form_for(@userinfo, url: '/about/create'),如需更多 Rails 方式,您需要添加 method: :put

示例如下: ruby form_for @userinfo, url: '/about/create', method: :put, html: { class: 'form-horizontal' }

否则,@Archie Reyes 的回答很有效。