根据传递的输入值更改参数值

时间:2017-03-27 19:45:14

标签: ruby ruby-on-rails-4

我有控制器如下

def city
  params.require(:id)
  begin
    @data = @user.city_details(Integer(params[:id]),
                              params[:flag]
  rescue ArgumentError => e
    render_error(:bad_request, e.message)
  end
end

model.rb

  def city_details(id, flag = 'N')
    StoredProcedure::User::GetCityDetails.exec!(
        id,
        flag
    )
  end
end

所以你可以在模型中看到我有标志值默认'N'。如何更新控制器,以便如果标志值传递为true,则将其更新为Y,如果传递为false,则将其更新为N?

1 个答案:

答案 0 :(得分:1)

flag = params[:flag] == '1' ? 'Y' : 'N'
@data = @user.city_details(params[:id].to_i, flag)

我假设你有某种复选框,它会返回'1'表示true,'0'表示false(通常情况下是rails)。如果没有,请根据需要更改params[:flag] == '1'条件。