1
我有一個Rails應用程序設置爲API,另一個應用程序用於測試API。在測試應用程序中,我希望用戶能夠創建存儲在API中的新的Household對象。現在,當我完成家庭表單並提交時,API中會創建一個新的Household對象,但不包含「名稱」參數。它只是創建一個帶有「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中:
families_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
末
如果在提交表單時在你的'create'動作中輸出'params [:household]',結果是什麼?我敢打賭,「參數[:家庭]」是零。如果您的表單名稱中出現這種情況,您的字段就像這樣:<%= text_field_tag'household [name]'%>' – cristian
您是否檢查了兩端發送和接收的參數? – Phil