2017-01-28 7 views
0

Я отправляю приглашение новому пользователю с помощью Devise Invitable. У меня есть связанная таблица с пользователями, называемыми организациями, с отношением belongs_to/has_many. Когда новый пользователь принимает приглашение, он указывает, что должна быть указана организация. Как я могу сделать так, чтобы пользователь был назначен организации приглашающего пользователя автоматически, чтобы база данных обновилась и приглашение можно было принять?Пригласите пользователя в организацию с Devise Invitable

Спасибо!

Моделирования после маркеров приглашения в скрытом поле, я добавил

<%= f.hidden_field :plan_id, :value => 1 %> 
<%= f.hidden_field :organization_id, :value => 1 %> 

в edit.html.erb приглашения посмотреть. Это работает, чтобы отправить информацию, которую я ищу, но я беспокоюсь, что она небезопасна, так как эти параметры могут быть скорректированы. Я также попытался добавить следующее в элемент управления редактирования в контроллере приглашений, но ничего не сделал.

resource.plan_id = 1 
resource.organization_id = 1 
+0

Вы должны перечислить то, что вы уже пробовали. См. Http://stackoverflow.com/help/how-to-ask – Gab

+0

Я отредактировал, чтобы добавить более подробную информацию. – waffle

ответ

2

У меня есть аналогичные установки, вы пытались что-то подобное в create разделе вашего invitations контроллера?

Этот подход работает для меня, но вам нужно переопределить контроллер приглашений по умолчанию, сделайте это так.

def create 
    @invited_user = User.invite!({:email => "[email protected]"}, current_user) 
    @invited_user.update(organization: current_organization) 
    ... 
    end 

current_organization я определен в моем application_controller.rb файл как:

def current_organization 
    @current_organization ||= current_user.organization 
    end