У меня есть проблема на данный момент, и я не знаю, что мне делать. Это в отношении отношений между таблицами и нужны ли мне иностранные ключи .Добавление внешних ключей в базу данных рельсов
У меня есть две таблицы в моей базе данных; пользователей и игр. Пользователи включают все информацию о пользователе (имя пользователя, адрес электронной почты, адрес и т. Д.). Игры включает в себя всю информацию о играх (имя, жанр, консоль user_id). Как , вы, возможно, заметили, что таблица игр включает в себя идентификатор пользователей, чтобы ассоциировать отношения между двумя, для каждой игры которых требуется связанный пользователь .
То, что я хочу сделать, это на каждой странице Игр show.html.erb, у меня есть кнопка , которая должна отправить письмо владельцу этой игры, чтобы позволить их теперь, что в настоящее время регистрируется пользователь заинтересованы в торговле, что игры.
Мне интересно, как я это сделаю. Пользователь user_id автоматически связывает все данные, связанные с пользователями, или только идентификатор. Если нет, то как бы я объявить электронную почту пользователей в качестве внешнего ключа, чтобы я мог позвонить по адресу электронной почты для отправки?
Любая помощь будет высоко оценена. Спасибо
Кристофер Джонс
UPDATE
Эй, я имел следующее в моем games_controller шоу раздела и это не сработало. Это породило следующую ошибку: неопределенный метод `email 'для« [email protected] »: String.
def show
@game = Game.find(params[:id])
respond_to do |format|
GameTrade.game_interest(@game.user.email).deliver
format.html { redirect_to root_url }
format.json { render json: @game }
end
end
Так что я изменил его на следующее для того, чтобы сломать эту проблему и выяснить, какую линию она сломалась, и он заявил, что блок был на линии 19, которая является линией г = GameTrade.game_interest (электронная почта). Я получил следующее сообщение об ошибке:
неопределенный метод `электронной почты» для "[email protected]": String
Есть идеи? код ниже
def show
@game = Game.find(params[:id])
respond_to do |format|
user = @game.user
email = user.email
g = GameTrade.game_interest(email)
g.deliver
format.html { redirect_to root_url }
format.json { render json: @game }
end
end
Следующий код является то, что мой Game_trade.rb в разделе почтовой программы:
class GameTrade < ActionMailer::Base
default :from => "[email protected]"
def game_interest(user)
@user = user
mail :to => user.email, :subject => "Game Interest"
end
end
Вы говорите о реальных FK в базе данных или опции ': foreign_key' для некоторых ассоциаций Rails? –
Эй, я хочу поместить внешний ключ, чтобы при нажатии кнопки он отправил электронное письмо на адрес электронной почты пользователей. Поле электронной почты не существует в таблице игр, только пользователи, и у меня есть user_id в играх, но я не думаю, что это дает доступ к электронной почте пользователей. – user1222136
Эй, я обновил свой вопрос выше, чтобы дать больше информации о том, что я хочу делать. – user1222136