0

我有以下控制器代码:

@question_group = QuestionGroup.find(params[:id])
@old_order = @question_group.ordering
@new_order = params[:ordering].to_i
  if @old_order < @new_order

参数包括:

Parameters: { "ordering"=>"16", "course_id"=>"8"}

问题是最初的 params[:ordering] 不是 Fixnum。这就是我添加 to_i 的原因。现在它是一个 Fixnum 但它始终为 0。我不明白为什么它不起作用。

4

2 回答 2

0

问题是我使用的是 form_for 并且它name=model[:ordering]在 html 中创建。即使它在日志中显示为ordering=>"3",为了访问我需要的控制器中的参数params[:model][:ordering]

于 2014-07-07T20:44:51.813 回答
0

如果params[:ordering]实际上是 String "16",那么params[:ordering].to_i应该返回 Fixnum 16

我会添加调试信息并确保检查params[:ordering]. 它很可能是nil。如果为 nil,则params[:ordering].to_i返回 0。

于 2014-07-07T19:24:34.370 回答