I got a NoMethodError when i called <%= @post.admin_user.name %>, don't know how to fix it. Extracted source (around line #4): <h1><%= @post.title %></h1> <p><%= @post.body %></p> <small>Post created at <%= @post.created_at.strftime('%b %d. %Y') %></small><br/><br/> <%= @post.admin_user.name %> <p>Category: <%= link_to @post.category.name, category_path(@post.category.id) %></p> <%= link_to 'Edit Post', edit_post_path %> | <%= link_to 'Go Back', posts_path %> | <%= link_to 'Delete Post', @post, :confirm => "Don't do it man!", :method => :delete %> </div> Showing c:/Sites/blog/app/views/posts/show.html.erb where line #5 raised: undefined method `name' for nil:NilClass --------------- This is my posts_controller.rb class PostsController < ApplicationController def index @post = Post.all end def new @post = Post.new @category = Category.all end def create @post = Post.new(post_params) if @post.save redirect_to posts_path, :notice => 'Your post has been posted!' else render 'new' end end def post_params params.require(:post).permit(:title, :body, :category_id, :admin_user_id, :admin_user, :name) end def edit @post = Post.find(params[:id]) end def update @post = Post.find(params[:id]) if @post.update_attributes(post_params) redirect_to post_path, :notice => 'Your post has been updated.' else render 'new' end end def show @post = Post.find(params[:id]) @user = AdminUser.all end def destroy @post = Post.find(params[:id]) @post.destroy redirect_to posts_path, :notice => 'Your post has been deleted.' end end This is my post.rb class Post < ActiveRecord::Base belongs_to :category belongs_to :admin_user end My admin_user.rd class AdminUser < ActiveRecord::Base # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable has_many :posts end
on 2013-10-20 19:41

on 2013-10-20 20:14

On Oct 18, 2013, at 10:17 PM, Jim <koyca2002@gmail.com> wrote: > I got a NoMethodError when i called <%= @post.admin_user.name %>, don't know how to fix it. > > > > Extracted source (around line #4): > > <h1><%= @post.title %></h1> > <p><%= @post.body %></p> > <small>Post created at <%= @post.created_at.strftime('%b %d. %Y') %></small><br/><br/> > <%= @post.admin_user.name %> If this is line #5 (where the error was reported below), then admin_user is nil. > <p>Category: <%= link_to @post.category.name, category_path(@post.category.id) %></p> If this is line #5, then category is nil. If this were me, I'd poke in the rails console and see what the record settings are, why either of those might be nil, and where they were supposed to be set for the post record.