Итак, я хотел зайти в профиль пользователя, щелкнуть «Отправить сообщение» и иметь возможность написать сообщение и разрешить его автоматическую отправку пользователю без явного указания поля: to.
Проблема была в том, что: user_id в <%= hidden_tag_field :user_id %>
не был установлен.Другими словами, я не мог получить: user_id из параметров, пока находился в этой форме.
Некоторые из решений, которые мы попробовали, заключались в том, чтобы включить параметры в link_to, но это не соответствовало форме, которая видела объект как ноль.
В итоге я создал вложенный ресурс, подобный так:
resources :users do
resources :messages do
end
end
И это в конечном итоге дало мне URL: users /: id / messages / new (new_user_message_path
)
Мой контроллер в итоге выглядел так:
def new
@message = ActsAsMessageable::Message.new
@user = params[:user_id]
end
def create
@to = User.find params[:id]
if current_user.send_message(@to, params[:acts_as_messageable_message][:body]
flash[:notice] = "Success"
else
flash[:error] = "Fail"
end
end
В том виде, в котором я смог оставить <%= hidden_tag_field :user_id %>
как есть.
Но в основном это решило проблему поискапользователь (чей профиль я посещал) и установка @to в моем действии создания.