【问题标题】:how to modify the last set of attributes in a rails nested field如何修改rails嵌套字段中的最后一组属性
【发布时间】:2020-01-11 23:12:42
【问题描述】:

好的,所以在我正在制作的 rails 应用程序中,我有一个模型需要在保存到控制器之前进行调整。问题是我不希望我可能正在修改的每个嵌套属性都有这些更改,只有最后一个(新创建的就是那个)。

我尝试过使用表单标签而不是依赖表单对象(将属性索引更改为类似新的,认为我可以轻松访问它)但这不会通过强参数,因此不会当我做my_model.update(permitted_params) 时不会得救。这是因为我希望能够更新现有记录,但可以选择创建一个新记录(仅一个),其中包含一些需要调整的属性(在控制器中)。

提前谢谢...

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-6


    【解决方案1】:

    我不确定我对您的问题的理解是否正确,但我希望它是正确的并且对您有所帮助,但请更具体并分享相关代码以获得更好的答案。

    我理解的解决方案:

    您可以访问控制器中的参数并对其设置条件,例如:

      def create               # or update
        if params[:your_model][:the_attribute] == your_condition
          # You can manually edit params here before saving.
          param[:your_model][:the_attribute] = your_change
        end
        @your_model = permitted_params
        @your_model.save
      end
    

    如果你想传递一些会影响你的条件的东西,你必须在 allowed_pa​​rams 动作中允许它。据我所知,没有其他办法。

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 2021-10-27
      • 2016-02-03
      • 1970-01-01
      相关资源
      最近更新 更多