Как передать произвольные (немодельные значения атрибута )действию rails?

У меня есть модель однонаправленных отношений между пользователями (у пользователей много отношений ), которые содержат идентификаторы двух заданных пользователей вместе с псевдонимом пользователя a для пользователя b. Я хочу использовать форму, позволяющую пользователям передавать адрес электронной почты -другого пользователя и псевдоним. Если пользователь с таким адресом электронной почты существует, создайте отношения между пользователями. Если ни один пользователь не соответствует, создайте нового «фантомного» пользователя с этим адресом электронной почты, а затем создайте отношения.

Я относительно новичок в рельсах и сначала наивно пытался использовать базовый:

= form_for @relationship do |f|
    = f.label :email
    = f.text_field :email
    = f.label :nickname, "Nickname"
    = f.text_field :nickname
    = f.submit "Submit", class: "btn btn-large btn-primary"

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

= form_tag :controller => "relationships", :action => "create" do
    = label :email        
    = text_field :email
    = label :nickname, "Nickname"
    = text_field :nickname
    = submit "Submit", class: "btn btn-large btn-primary"

Но это выдает ошибку «неправильное количество аргументов (1 вместо 2 )»

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

11
задан Mischawaka 14 July 2012 в 22:04
поделиться