如何在Rails表单中为两个模型的两个输入设置相同的值

注意

我有一个应用程序,需要进行简单的用户输入并使用一个值更新两个模型。我已经研究了很多天了,现在是时候寻求帮助了。我正在使用Rails 4.1。我基于对许多类似问题的回答,决定使用form_for辅助程序和嵌套在其中的fields_for。这涵盖了两个模型,但是我仍然面临着为每个模型获取正确值的问题。该表格只有一个输入,我需要为两个模型都获取该值。它适用于更新一个模型,但更新后的值不适用于另一模型。形式很简单。我正在更新Plan模型上的:qtydemanded字段,但是我想要相同的值来更新Chart模型上的:value字段。我试图在Chart模型上设置value => @ product.qtydemanded,但是设置了:值字段等于更新之前计划模型中要求的现有数量。它没有从图表模型的表单中捕获更新的值。

<%= form_for @product, url: update_plan_path do |p| %>
<table>
  <tr>
    <td>Sku Number:</td>
    <td><%= p.text_field :sku_number, :readonly => true %></td>
 </tr>
 <tr>
    <td>Period:</td>
    <td><%= p.text_field :period, :readonly => true %></td>
</tr>
<tr>
   <td>Qtydemanded:</td>
   <td><%= p.text_field :qtydemanded %></td>
 <%=fields_for @chart do |chart| %>
   <td><%= chart.hidden_field :value %></td>
 <% end %>
</tr>
<tr>
  <td><%= p.submit "Save" %></td>
</tr>
</table>
<% end %> 

控制器也很简单。我在那里没有做任何超级复杂的事情。我只是在强参数上调用update_attributes。该更新正在运行。它只是没有正确的值。当我提交表单时,Chart:value字段将使用Plan模型中的旧qtydemanded值进行更新。

def update_plan
    @product = Plan.where('sku_number = ? and period = ?', params[:sku_number],params[:period]).first
    @chart = Chart.where('sku_number = ? and period = ? and feature = "qtydemanded"',params[:sku_number],params[:period]).first
    if @product.update_attributes(plan_params)
        @chart.update_attributes(chart_params)
        redirect_to(:action => 'show_product', :sku_number => @product.sku_number)
        else
        puts "There is an error"
    end
end

private

def chart_params
    params.require(:chart).permit(:value)
end

路由也很简单,因为它只是将sku_number和周期传递给控制器​​以查找正确的记录。

patch 'products/:sku_number/:period/update_plan' => 'products#update_plan', :as => :update_plan

我可以看到该表格已正确解释,并且将输入值放入了对我来说像是plan [qtydemanded]和chart [value]之类的数组。我试图像这样在控制器中获取该值:@ chart.update(:value => plan [qtydemanded])。那返回:value为空。我认为答案接近于此,但我无法弄清楚。我尝试了其他答案的无数种形式,但我没有主意。我衷心感谢您的帮助。

护栏

if @product.update_attributes(plan_params)
  chart_params[:value] = plan_params[:qtydemanded]
  @chart.update_attributes(chart_params)

解决您的问题?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在不同的选项卡面板中为相同的值设置两个RShiny输入值

来自分类Dev

如何在Symfony2中为两个输入所呈现的表单字段设置属性

来自分类Dev

如何在 Symfony 2 中为两个模型字段创建单个表单字段?

来自分类Dev

如何在laravel中为相同的两个模型创建多个数据透视表?

来自分类Dev

如何在相同模型之间为两个不同的关联设置一个具有多次通过的

来自分类Dev

如何在View()中设置两个值

来自分类Dev

如何在React中为两个相同的子组件分配不同的值

来自分类Dev

如何在枚举C#中为同一定义设置两个值

来自分类Dev

在CSS中为两个div设置相同的高度

来自分类Dev

两个输入在Shiny中具有相同的值

来自分类Dev

在FactoryGirl中为两个属性使用相同的值

来自分类Dev

在FactoryGirl中为两个属性使用相同的值

来自分类Dev

如何在HTML中使用相同的输入值来具有一个输入字段,两个按钮和两个动作

来自分类Dev

如何在两个输入字段中只设置一个 NULLABLE

来自分类Dev

如何使两个输入字段为必需,并在Codeigniter中接受一个的值?

来自分类Dev

如何在Xamarin表单中绑定两个控件

来自分类Dev

我应该如何在此Perl哈希中为两个不同的键分配相同的值?

来自分类Dev

如何在html模板中连接两个模型?

来自分类Dev

如何在 Laravel 中同时保存两个模型?

来自分类Dev

如何在同一行的两个输入行中创建表单?

来自分类Dev

如何在一个命令行中输入两个值?

来自分类Dev

如何在larave中合并两个相同的集合

来自分类Dev

如何在Ruby中合并两个相同的对象

来自分类Dev

如何在两个日期输入中具有相同的年份?

来自分类Dev

如何在android的两个微调器中设置这两个json数组?

来自分类Dev

如何将.txt中的两个值分隔为两个不同的文件?

来自分类Dev

当两个输入框中的任何一个有输入时,如何自动将输入框的值设置为相反的数字?

来自分类Dev

如何在Ubuntu中为两个不同的用户配置两个邮件

来自分类Dev

如何在JQuery中设置两个具有相同高度的div

Related 相关文章

  1. 1

    在不同的选项卡面板中为相同的值设置两个RShiny输入值

  2. 2

    如何在Symfony2中为两个输入所呈现的表单字段设置属性

  3. 3

    如何在 Symfony 2 中为两个模型字段创建单个表单字段?

  4. 4

    如何在laravel中为相同的两个模型创建多个数据透视表?

  5. 5

    如何在相同模型之间为两个不同的关联设置一个具有多次通过的

  6. 6

    如何在View()中设置两个值

  7. 7

    如何在React中为两个相同的子组件分配不同的值

  8. 8

    如何在枚举C#中为同一定义设置两个值

  9. 9

    在CSS中为两个div设置相同的高度

  10. 10

    两个输入在Shiny中具有相同的值

  11. 11

    在FactoryGirl中为两个属性使用相同的值

  12. 12

    在FactoryGirl中为两个属性使用相同的值

  13. 13

    如何在HTML中使用相同的输入值来具有一个输入字段,两个按钮和两个动作

  14. 14

    如何在两个输入字段中只设置一个 NULLABLE

  15. 15

    如何使两个输入字段为必需,并在Codeigniter中接受一个的值?

  16. 16

    如何在Xamarin表单中绑定两个控件

  17. 17

    我应该如何在此Perl哈希中为两个不同的键分配相同的值?

  18. 18

    如何在html模板中连接两个模型?

  19. 19

    如何在 Laravel 中同时保存两个模型?

  20. 20

    如何在同一行的两个输入行中创建表单?

  21. 21

    如何在一个命令行中输入两个值?

  22. 22

    如何在larave中合并两个相同的集合

  23. 23

    如何在Ruby中合并两个相同的对象

  24. 24

    如何在两个日期输入中具有相同的年份?

  25. 25

    如何在android的两个微调器中设置这两个json数组?

  26. 26

    如何将.txt中的两个值分隔为两个不同的文件?

  27. 27

    当两个输入框中的任何一个有输入时,如何自动将输入框的值设置为相反的数字?

  28. 28

    如何在Ubuntu中为两个不同的用户配置两个邮件

  29. 29

    如何在JQuery中设置两个具有相同高度的div

热门标签

归档