基于Checkbox Value的Ruby on Rails更新记录

时间:2015-03-04 15:37:04

标签: ruby-on-rails sql-update

我有一个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

1 个答案:

答案 0 :(得分:0)

如果no_from_dept_yn是转移表中的一列,您只想这样做:

if @transfer.no_from_dept_yn?
...

如果不是,那么您需要单独检查该参数。如果是这种情况,请告诉我,我会为您更新答案。