У меня есть приложение rails, настроенное как API и другое приложение, которое я использую для тестирования API. В тестовом приложении я хочу, чтобы пользователь мог создать новый объект Dom, который хранится в API. Прямо сейчас, когда я заполняю форму домохозяйства и представляю, в API создается новый объект «Хозяин», но параметр «имя» не включается. Он просто создает новую запись только с полями «created_at» и «updated_at». Если кто-нибудь скажет мне, что я делаю неправильно, я был бы признателен. Вот мой код:Использование form_tag для передачи параметров API
В тестовом приложении:
семей/new.html.erb:
<%= form_tag households_path, :method => :post do %>
Name: <%=text_field_tag :name %><br />
<%=submit_tag 'Save' %>
<%end%>
households_controller.rb:
def create
uri = "#{API_BASE_URL}/households.json"
payload = params.to_json
rest_resource = RestClient::Resource.new(uri)
begin
rest_resource.post payload, :content_type => 'application/json'
redirect_to households_path
rescue Exception => e
redirect_to households_path
end
end
И в API:
домашние хозяйства_controller.rb
def create
@household = Household.new(params[:household])
if @household.save
render json: @household, status: :created, location: @household
else
render json: @household.errors, status: :unprocessable_entity
end
конец
Если вы выставляете 'params [: hous]' в своем действии 'create', когда вы отправляете форму, что является результатом? Уверен, что 'params [: family]' nil. Если это имеет место в вашей форме, введите ваши поля, как это: '<% = text_field_tag 'домашнее хозяйство [имя]'%>' – cristian
Вы проверили параметры, которые были отправлены и получены на обоих концах? – Phil