首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Micheals Hartl教程第11章未定义方法

Micheals Hartl教程第11章未定义方法
EN

Stack Overflow用户
提问于 2015-03-04 00:46:51
回答 1查看 66关注 0票数 0

我正在读Hartls教程,但是做了一些小的修改。我把微博和作者联系起来。

我有以下错误:

代码语言:javascript
复制
 undefined method `content' for #<Post:0x4cea7b8>
Extracted source (around line #4):

<li id="post-<%= post.id %>">
<%= link_to gravatar_for(post.user, size: 50), post.user %>
<span class="user"><%= link_to post.user.name, post.user %></span>
<span class="content"><%= post.content %></span>
<span class="timestamp">
Posted <%= time_ago_in_words(post.created_at) %> ago.
</span> 

我的_post.html.erb

代码语言:javascript
复制
<li id="post-<%= post.id %>">
  <%= link_to gravatar_for(post.user, size: 50), post.user %>
  <span class="user"><%= link_to post.user.name, post.user %></span>
  <span class="content"><%= post.content %></span>
  <span class="timestamp">
    Posted <%= time_ago_in_words(post.created_at) %> ago.
  </span>
</li>

我的用户/show.html.erb

代码语言:javascript
复制
<% provide(:title, @user.name) %>
<h1>
  <%= gravatar_for @user %>
  <%= @user.name %>
</h1>
<div class="col-md-8">
  <% if @user.posts.any? %>
      <h3>Microposts (<%= @user.posts.count %>)</h3>
      <ol class="posts">
        <%= render @posts %>
      </ol>
      <%= will_paginate @posts %>
  <% end %>
</div>

我的schema.rb文件

代码语言:javascript
复制
  create_table "comments", force: true do |t|
    t.text      "body"
    t.integer   "user_id"
    t.integer   "post_id"
    t.timestamp "created_at"
  end

  create_table "posts", force: true do |t|
    t.text     "message"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.integer  "user_id"
  end

  add_index "posts", ["user_id", "created_at"], name: "index_posts_on_user_id_and_created_at"
  add_index "posts", ["user_id"], name: "index_posts_on_user_id"

其余的schema.rb

代码语言:javascript
复制
create_table "users", force: true do |t|
    t.string   "name"
    t.string   "email"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "password_digest"
    t.string   "remember_digest"
    t.boolean  "admin"
    t.string   "activation_digest"
    t.boolean  "activated",         default: false
    t.datetime "activated_at"
  end

  add_index "users", ["email"], name: "index_users_on_email", unique: true
  add_index "users", ["name"], name: "index_users_on_name", unique: true

end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-04 15:19:59

在您的_post.html.erb文件中,将:<span class="content"><%= post.content %></span>更改为<span class="content"><%= post.message %></span>,它应该可以工作。

您获得“未定义方法”错误的原因是,当您创建Post模型时,您使用"message“作为属性名,但是在您的_post.html.erb文件中,您试图访问一个不存在的”内容“属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28844812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档