无法从数据库获取数据

时间:2018-09-14 09:19:47

标签: ruby-on-rails ruby-on-rails-5

如何在页面上显示数据库中的值以进行显示,我不尝试多少错误。

undefined method `email' for nil:NilClass

development.erb.html

<% @development.each do |developer| %>
  <p><% @developer.email %></p>
<% end %>

welcome_controller.rb

class WelcomeController < ApplicationController
  def index
    @development = TeamMember.all
  end
end

model.rb

class TeamMember < ApplicationRecord
end

db schema.rb

create_table "team_members", force: :cascade do |t|
  t.string "email"
  t.string "first_name"
  t.string "last_name"
  t.string "team_text"
  t.string "image_url"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

2 个答案:

答案 0 :(得分:2)

应为<%= developer.email %>而不是<% @developer.email %>

答案 1 :(得分:0)

您应该将.erb文件更改为:

<% @development.each do |developer| %>
  <p><%= developer.email %></p>
<% end %>

当您使用<% %>内联运行ruby代码时,它不会输出结果(适用于.each),但是当您希望将结果值(开发人员的电子邮件)输出到HTML时,您应该使用<%= %>

此外,该文件应位于/views/welcome/index.erb.html

希望这会有所帮助。