Rails3编辑单连接表记录

时间:2013-11-29 07:45:22

标签: ruby-on-rails-3.2 jointable

User和Building通过Buildingusers建立了has_many关系。

编辑用户属性涉及编辑连接表属性。但是,出于安全原因,它们需要在被调用的建筑物的基础上单独进行编辑。因此,如果user_controller调用相关的联合表记录

@buildinguser = Buildinguser.where(['building_id = ? and user_id = ?', session[:building_id], params[:id]]).first

用户模型陈述

accepts_nested_attributes_for :buildingusers, :allow_destroy => true
attr_accessible :buildingusers_attributes

如何在用户表单中进行编辑?

<%= f.fields_for :buildingusers do |ff| %>

生成所有连接表记录,这不是目标

<%= f.fields_for @buildinguser do |ff| %>

将生成一个表单,但数据不正确(未调用连接表的id)

<input checked="checked" id="user_buildinguser_operator" name="user[buildinguser][operator]" type="checkbox" value="1" />

如果通过@buildingusers

调用控制器和视图,也会出现同样的情况

1 个答案:

答案 0 :(得分:0)

<%= hidden_field_tag "buildinguser[building_id]", session[:building_id] %>

做了这个伎俩。灵感来自 avoiding fields_for adding record to associated model