2013-11-22 4 views
1

У меня есть 2 рубиновых проекта, которые имеют форму и отправляют ее в другой проект. Затем другой проект должен преобразовать его в модель, цитату и сохранить ее.Как сделать запрос POST из одного приложения rails в другое?

Ive создал ресурс цитаты и контроллер с методом создания. Действие формы - это другой проект/цитаты и почтовый адрес метода. Насколько я понимаю, это должно вызвать метод create в контроллере котировок.

Однако я получаю эту ошибку:

The change you wanted was rejected. 
Maybe you tried to change something you didn't have access to. 

Кто-нибудь знает, что является причиной этой ошибки? Является ли оно героикой или это имеет какое-то отношение к моим приложениям? Я довольно новичок в rails/heroku, поэтому я не уверен, любая помощь будет оценена по достоинству.

Редактировать 1 После некоторых исследований кажется, что мне нужны токены аутентификации. Однако, поскольку у меня есть два приложения, как это достигается?

+0

Я не знаю, действительно ли это настоящая проблема. Но у каждого приложения rails есть 'secret_token', который можно найти в' initializers/secret_token.rb'. Всякий раз, когда создается форма, для нее создается «authenticity_token» на основе «secret_token» приложения. Когда форма отправлена, приложение проверяет, действителен ли этот 'authenticity_token' (опять же, на основе' secret_token'), если он недействителен, почтовый запрос не завершен, это может быть причиной при отправке формы другого приложения! –

+0

Вы используете общий db между двумя приложениями? – MhdSyrwan

+0

Нет только у 2-го приложения есть db - @MhdSyrwan, Ok, возможно, это проблема, тогда попробуйте выяснить, как я могу работать с секретными токенами - @ Tamer Shlash – DTC

ответ

1

Хорошо, поэтому после проверки журналов heroku это похоже на проблему с CSRF. Когда я прокомментировал защиту от линии подделки в обоих приложениях, она отлично работала, и я смог отправлять данные между ними.
Потребуется некоторое исследование того, что это разумная вещь (угадать). Спасибо за советы всем.