#java #android #ruby-on-rails #ruby #ruby-on-rails-4
#java #Android #ruby-on-rails #ruby #ruby-on-rails-4
Вопрос:
Приложение rails имеет вложенные формы, работает в Интернете и правильно сохраняется.Но у нас есть проблема в части Android, значения не сохранялись.
Вот код в rails:
<%= nested_form_for @patient do |f| %>
<div class="title"> General Details </div>
<div class="name">
<%= f.text_field :firstname, placeholder: 'FIRST NAME' %>
<%= f.text_field :middlename, placeholder: 'MIDDLE NAME' %>
<%= f.text_field :lastname, placeholder: 'LAST NAME' %>
</div>
<div>
<%= f.label "Immunization" %>
<%= f.fields_for :ph_immunizations do |ph| %>
<%= render "ph_immunization_fields", :f => ph %>
<% end %>
<p><%= link_to_add_fields " Add", f, :ph_immunizations %></p>
</div>
<% end %>
частичное:
<p>
<%= f.hidden_field :patient_id, value: @patient.id %>
<%= f.collection_select(:immunization_id,Immunization.order(:description),:id,:description,
{include_blank: '', selected: field_value(:immunization_id) },
class: "js-immunization js-select2", id: "immunization-select", "data-placeholder" => "Immunization") %>
<%= f.link_to_remove "Remove" %>
</p>
Android:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://xxxxx/patients");
List<NameValuePair> immunizatioValuePairs = new ArrayList();
immunizatioValuePairs.add(new BasicNameValuePair("ph_immunizations_attributes[1234567890123[immunization_id]]", Integer.toString(1)));
immunizatioValuePairs.add(new BasicNameValuePair("ph_immunizations_attributes[1234567890124[immunization_id]]", Integer.toString(2)));
immunizatioValuePairs.add(new BasicNameValuePair("ph_immunizations_attributes[1234567890123[patient_id]]", Integer.toString(98)));
immunizatioValuePairs.add(new BasicNameValuePair("ph_immunizations_attributes[1234567890124[patient_id]]", Integer.toString(98)));
httppost.setEntity(new UrlEncodedFormEntity(immunizatioValuePairs));
HttpResponse response = httpclient.execute(httppost);
InputStream responseContent = response.getEntity().getContent();
Журналы Android на сервере:
{"ph_immunizations_attributes"=>{"1234567890123"=>{"immunization_id"=>"1", "patient_id"=>"98"}, "1234567890124"=>{"immunization_id"=>"2", "patient_id"=>"98"}}}
Комментарии:
1. Это всего лишь некоторый шаблонный код, ни один из них не относится к конкретному Android. Пожалуйста, добавьте свой метод контроллера и форму
params
, которую вы получаете из браузера и «android». Вы можете записать их в файл журнала, если вы их уже не видите.2. @Patru уже опубликовал код Android. Спасибо
3. Можете ли вы опубликовать
parms
хэш Android-post? Также было бы полезно действие контроллера (я думаю, это будетcreate
).