#ruby-on-rails #ruby #ruby-on-rails-3 #omniauth
#ruby-on-rails #ruby #ruby-on-rails-3 #omniauth
Вопрос:
Хорошо, итак, это еще одна попытка задать мой вопрос. В первый раз у меня получилось довольно плохо. У меня есть отношения, настроенные в моих моделях, чтобы у пользователей было много представлений, и представления принадлежали пользователю. У меня есть ссылочный столбец в моей таблице представлений, который ссылается на: user и индекс:
add_index :submissions, :user_id
Я использую omniauth, чтобы люди могли входить в систему с помощью Twitter. Я просто хочу, чтобы пользователь, вошедший в систему, мог отправлять отправку, а затем заставить rails понять, что существует связь между current_user и отправками, которые они только что написали. Проблема в том, что я не могу сохранить current_user в переменной экземпляра следующим образом:
@user = current_user
который я хотел бы использовать в моем контроллере отправки (create) вот так:
@user = current_user
@submission = @user.submissions.create(params[:submission])
Мне это нужно для того, чтобы я мог попросить пользователя создать отправку на странице views / submitions / index.html.rb, и rails понял бы связь. Большое спасибо, что посмотрели на это. Также я заранее приношу извинения, если я просто пропустил что-то действительно очевидное или общеизвестное.
Ответ №1:
Ваш пост на самом деле не содержит вопроса или я что-то пропустил? Что мне кажется странным, так это то, что вы хотите назначить @user = current_user
. В этом нет необходимости, current_user в любом случае должен быть пользователем, поэтому вы могли бы просто написать @submission = current_user.submissions.create(params[:submission])
.
Возможно, вы можете отредактировать свой пост и предоставить более подробную информацию о своих вспомогательных методах (current_user), сообщение об ошибке, которое вы получаете с кодом выше. Что вы получите, если добавите Rails.logger.info current_user
(или current_user.name если у вас есть это поле)?
Если вы хотите, вы можете перейти по ссылке в моем профиле здесь, на Stack Overflow, у меня есть пара руководств по Rails, в том числе одно с Omniauth.
Комментарии:
1. Спасибо, это помогло. На самом деле я разобрался с большей частью ответа, но StackOverflow не позволил мне опубликовать его, потому что еще не прошло 24 часа. Я обязательно ознакомлюсь с вашими руководствами, спасибо!