在表中使用best_in_place gem

时间:2013-03-30 04:25:52

标签: ruby-on-rails best-in-place

我有一张列出所有用户的表格。我想编辑该表中的某些字段,而不是打开每个用户然后进行编辑。

- @users.each do |u|
  %tr
    %td= u.name
    %td= best_in_place u, :email_flag, :type => :checkbox

问题似乎是传回的唯一参数是复选框字段:

Processing by UsersController#update as
  Parameters: {"user"=>{"email_flag"=>"true"}

我接近这个错误的方式吗?为什么用户对象“你”没有被传回?

1 个答案:

答案 0 :(得分:0)

best_in_place在这里正常运作。您编辑的整个属性集不需要每次都传输。这就是HTTP PUT(或PATCH取决于您的Rails版本)用于 - 更新现有模型实例的属性。就像在SQL中一样,当您运行UPDATE users SET email='something@example.com' WHERE id=1时,您不必每次都列出每个字段。只触摸指定的列。

当您在评论中添加last_namecountry的其他字段时,它将以相同的方式工作。