【问题标题】:How to Handle 2 tables with one form_tag? Rails 3如何用一个 form_tag 处理 2 个表?导轨 3
【发布时间】:2011-10-24 08:54:06
【问题描述】:
  1. 受益人
    • id (PK)
    • 姓名
    • 年龄
    • 收入
  2. Beneficiary_loans
    • id (PK)
    • beneficiary_id (FK)
    • 金额
    • 期间

我正在做的是,从 [Beneficiaries] 表中选择一个受益人列表并显示如下

<%= 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 的形式出现 我在这个表格中遗漏了什么吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 controller form-for fields-for


    【解决方案1】:

    检查以下内容,

    1. 借助任何浏览器工具(例如:firebug),确保表单已正确呈现。有时由于一些放错的标签(通常发生在表格结构中),表单无法正确呈现。
    2. 尝试删除表格结构,看看表格是否有效。
    3. 确保您的关联良好,我猜应该是 Beneficiary has many Beneficiaryloan

    如果以上都没有帮助,请将请求参数贴在这里。

    【讨论】:

    • 表单正在正确呈现,即使 beneficiary_id,hfi_id, status_id 等输入字段值存储在 DB 中。只有输入字段不存储。输入字段的数量渲染如下&lt;input class="forms_txtbx" id="beneficiaryloan_amount" name="beneficiaryloan[amount]" size="30" type="text" /&gt;
    • 能否请您发布请求参数?
    • 参数:{"commit"=>"Approve", "benificiary_ids"=>["37"], "authenticity_token"=>"zMecG8/dwTs8kb/aeimrmho47J/5SLkS7N6E YKtKpBQ=", "utf8 "=>"Γ£ô", "id"=>"13", "beneficiary"=>{"beneficiaryloan"=>{"period"=>"", "amount"=>"", "rate"= >""}}}
    • 我闻到表格有问题,如果我们有多个受益人,我们应该能够在一系列受益人贷款中检索它们,其中可能 id 作为受益人 ID。尝试使用类似 而不是
    • 这应该很容易做到,我已经在我的 github 存储库 github.com/nithyanandankm/DemoApp 中添加了一个演示应用程序。希望这会对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    相关资源
    最近更新 更多