ruby-on-rails - 在 rails api 中更新嵌套模型

标签 ruby-on-rails json ruby api

我想构建一个 Rails API,在数据库中创建嵌套记录。

我想将数据发布到嵌套 的数据库,或者说具有has_ many 关联的关联模型[参见下面的代码]。

这是正确的方法吗?或者 update 操作是否有任何替代方法?我想记录用户 Address ,这将是 json 格式的哈希数组。

我有两个模型 UserAddress。 关联是 User has_many Addresses

我的更新操作:

   def update
    @user = User.find(id: params[:id])

    if @user.update(first_name: params[:first_name],email: params[:email],phone: params[:phone],password: Time.now.to_i, gstin: params[:gstin],addresses)
      @user.addresses.each do |a|

        a.update_attributes(first_name: params['first_name'],last_name: params['last_name'],city: params['city'],state: params['state'],phone: params['phone'],zip: params['zip'],address: params['address'])
      end  
      render json: @user, status: 200
    else
      render json: { errors: @user.errors }, status: 422
    end
  end

最佳答案

那不是正确的做法 你应该使用 accepts_nested_attributes_for

Class User 
  has_many :addresses
  accepts_nested_attributes_for :addresses
end

更多细节和例子follow this

关于ruby-on-rails - 在 rails api 中更新嵌套模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47194746/

相关文章:

ruby-on-rails - 如何在ActiveAdmin布局中自定义HTML结构?

ruby - 使用 Bunny gem 处理来自队列的消息时正常关闭

ruby-on-rails - Rails 部分渲染和设计 Action

javascript - 动态下拉列表(包括 JSFiddle)

ruby-on-rails - 带有 Remotipart 的 Rails AJAX 上传表单

ruby-on-rails - 嵌套资源的 Link_to 路由问题

java - 使用 HttpURLConnection 发送 UTF-8 字符串

mysql - Group Key如何Json、Sum、动态?

json - 我如何需要一个字段或另一个字段或(其他两个字段之一)但不是全部?

ruby - 如何在 ruby​​ 中将一个类的对象数量限制为给定数量?