Проблема с созданием отношений с использованием omniauth в rails 3

#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 часа. Я обязательно ознакомлюсь с вашими руководствами, спасибо!