我有一个Ruby on Rails表单,允许用户更新名为" Transfers"的表。我想要做的是,如果用户在表单中选择了一个特定的复选框(no_from_dept_yn),我希望它始终将3个其他字段设置为默认值,无论用户选择了什么。下面注释掉的部分是我尝试这样做的地方,但无法找出正确的更新语法。这在create方法中使用时确实有效。这就是我在传输控制器中所拥有的。
def update
@transfer = transfer.find(params[:id])
# if @transfer.no_from_dept_yn == true
# @transfer.from_person = 'Default User'
# @transfer.department = 'Default Dept'
# @transfer.location = ''
# end
respond_to do |format|
if @transfer.update_attributes(params[:transfer])
format.html { redirect_to @transfer, notice: 'Transfer was successfully updated.' }
format.json { head :no_content }
else
@locations = Location.order(:name)
@users = User.order("last_name, first_name, middle_name")
@depts = Department.order("department_id")
format.html { render action: "edit" }
format.json { render json: @transfer.errors, status: :unprocessable_entity }
end
end
end
答案 0 :(得分:0)
如果no_from_dept_yn是转移表中的一列,您只想这样做:
if @transfer.no_from_dept_yn?
...
如果不是,那么您需要单独检查该参数。如果是这种情况,请告诉我,我会为您更新答案。