Как обрабатывать 2 таблицы с одним form_tag?Рельсы 3 - PullRequest
0 голосов
/ 24 октября 2011
  1. Получатели
    • id (PK)
    • имя
    • возраст
    • доход
  2. Beneficiary_loans
    • id (PK)
    • beneficiary_id (FK)
    • сумма
  3. период

Что я делаю, так это выбираю список бенефициаров из таблицы [Бенефициары] и отображаю следующее

<%= form_tag({:action => 'update_survey_list_status', :status=>4}) do %>
  <table width="100%">
    <tr>
      <th>Beneficiary Details</th>
      <th>Amount</th>
      <th>Rate</th>
      <th>Period</th><th>
      <input type='checkbox' name='checkall' onclick='checkedAll();'>
      </th>
    </tr>
    <% @publishedlist.each do |b| %>
    <tr>
      <td><%= b.firstname %></td>
      <%= fields_for :beneficiaryloan do |bloan| %> 
        <td> <%= bloan.text_field :amount%></td>
    <td> <%= bloan.text_field :rate%></td>
    <td> <%= bloan.text_field :period%></td>
      <% end %> 
     <td><%= check_box_tag "benificiary_ids[]",b.id, :name => "benificiary_ids[]"%>     </td>
   </tr>
   <% end %>
  </table> <%= submit_tag "Approve", :class=>'form_buttons'  %>
<% end %>

В контроллере,

@beneficiaries=Beneficiary.find(:all, :conditions => ["id IN (?)",     params[:benificiary_ids]])  
@beneficiaries.each do |b|
    @beneficiaryloan = Beneficiaryloan.new(params[:beneficiaryloan])
    @beneficiaryloan.beneficiary_id=b.id
    @beneficiaryloan.hfi_id=session[:id].to_s
    @beneficiaryloan.status_id=params[:status]
    @beneficiaryloan.save
end

То, что я не получаю, это

params[:beneficiaryloan]

Значения приходят как NULL Я что-то здесь упускаю в этой форме?

1 Ответ

1 голос
/ 24 октября 2011

Проверьте следующее,

  1. С помощью любого инструмента браузера (например, firebug) убедитесь, что форма была правильно отображена. Иногда из-за некоторых неуместных тегов (обычно это происходит со структурой таблицы) форма не отображается должным образом.
  2. Попробуйте удалить структуру таблицы и посмотрите, работает ли форма.
  3. Убедитесь, что с вашей ассоциацией все в порядке, я думаю, она должна быть у бенефициара.

Если ничего из вышеперечисленного не помогло, пожалуйста, опубликуйте параметры запроса здесь.

...