对于#<profile id:=“”nil =“”>

时间:2017-06-08 11:25:15

标签: ruby-on-rails

追踪:https://i.gyazo.com/6487f4eee162e8c2207d7fdb5fc4ef3b.png 我无法得到正在发生的事情,我在联系页面做了同样的过程,一切正常。有什么想法吗?

简档/ new.html.erb

<div class="row">
  <div class="col-md-6 col-md-offset-3">
    <h1 class="text-center">Create Your Profile</h1>
    <p class="text-center">Be a part of the DevMatch community and fill out your profile!</p>
    <div class="well">
      <%= render 'form' %>
    </div>
  </div>
</div>

简档/ _form.html.erb

<%= form_for @profile, url: user_profile_path do |f| %>
  <div class="form-group">
    <%= f.label :first_name %>
    <%= f.text_field :first_name, class: 'form-control' %>
  </div>
  <div class="form-group">
    <%= f.label :last_name %>
    <%= f.text_field :last_name, class: 'form-control' %>
  </div>
  <div class="form-group">
    <%= f.label :job_title %>
    <%= f.select :job_title, ['Developer', 'Entrepreneur', 'Investor'], {}, class: 'form-control' %>
  </div>
  <div class="form-group">
    <%= f.label :phone_number %>
    <%= f.text_field :phone_number, class: 'form-control' %>
  </div>
  <div class="form-group">
    <%= f.label :contact_email %>
    <%= f.text_field :contact_email, class: 'form-control' %>
  </div>
  <div class="form-group">
    <%= f.label :description %>
    <%= f.text_area :description, class: 'form-control' %>
  </div>
  <div class="form-group">
    <%= f.submit "Update Profile", class: 'btn btn-primary' %>
  </div>
<% end %>

模式

create_table "profiles", force: :cascade do |t|
    t.integer  "user_id"
    t.string   "first_name"
    t.string   "last_name"
    t.string   "job_title"
    t.string   "phone_number"
    t.string   "contact_email"
    t.text     "description"
    t.datetime "created_at",    null: false
    t.datetime "updated_at",    null: false
  end

配置文件控制器

class ProfilesController < ApplicationController
  # GET to /users/:user_id/profile/new
  def new
    # Render blank profile details form
    @profile = Profile.new
  end
end

我在个人资料创建者页面中看到了rror。它说firstname是未定义的但是我尝试删除它然后它说laast名称是未定义的等等

如果我删除“&lt;%= render'形式'%&gt;”形成其他HTML,页面加载完美,但我需要一个表单,我正在尝试学习Ruby。遗憾

1 个答案:

答案 0 :(得分:1)

  

配置文件ID的未定义方法`first_name':nil

     

它说firstname未定义,但我尝试删除它然后它   说姓氏是未定义的等等

您在个人资料表中没有列。您应该运行rake db:migrate来迁移应解决问题的列。

此外,确保您的迁移正常运行,没有任何错误使用rake db:migrate:status 检查待处理迁移的状态