2015-01-03 2 views
1

Я пытаюсь установить значение значения электронной почты в приведенном ниже коде, но я продолжаю получать «неопределенный метод« email = ». current_user.email основан на том, кто в настоящий момент вошел в систему. Система входа в систему была создана с использованием devise. Никогда не будет времени, когда кто-то может создать новый пост, не будучи зарегистрированным, поэтому всегда будет значение current_user.email.Установка значения из базы данных в конвейере

def create 
    @post= Post.new(post_params) 
    @post.email= current_user.email #this is the line where it falls apart 
    if @post.save 
     redirect_to posts_path, :notice => "Post Saved" 
    else 
     render "new" 
    end 
end 

Вот таблица сообщения

class CreatePosts < ActiveRecord::Migration 
    def change 
    create_table :posts do |t| 
     t.string :title 
     t.string :venmo_name 
     t.float :price 
     t.datetime :end_datetime 
     t.integer :areacode 
     t.string :email 

     t.timestamps null: false 
    end 
    end 
end 

ответ

1

неопределенный метод `электронная почта =»

Это говорит о том, что метод сеттер Post для атрибута email не определен. Ваша таблица posts, скорее всего, просто отсутствует столбец, иначе AR создаст ее для вас.

+0

Я разместил свою почтовую таблицу –

+0

Это просто миграция, которая должна создать таблицу. Вы выполнили миграцию? Обязательно проверьте фактическую таблицу * базы данных *. Если вы добавите столбцы в миграцию после того, как вы уже запустили его, это не будет иметь никакого эффекта. –

+0

Спасибо! Я просто много узнал о том, как добавлять новые столбцы в базы данных. –

Смежные вопросы