8

エラーが発生します

"11":String"の未定義のメソッド`div'

@startdateフォームを送信するときにその行を指しています。何が起こっているのか全くわかりません。Railsコンソールで手順を実行すると、正常に機能します。

私のコントローラーには次のものがあります。

@startday = params["startday_#{i}".to_sym]
@startmonth = params["startmonth_#{i}".to_sym]
@startyear = params["startyear_#{i}".to_sym].to_s
@endday = params["endday_#{i}".to_sym]
@endmonth = params["endmonth_#{i}".to_sym]
@endyear = params["endyear_#{i}".to_sym].to_s
@startdate = params["startdate_#{i}".to_sym]
@price = params["price_#{i}".to_sym]
@currency = params[:currency]
@startdate = Date.new(@startyear, @startmonth, @startday)
@enddate = Date.new(@endyear, @endmonth, @endday)

私が送信しているハッシュは次のとおりです。

{
  "startmonth_1"=>"2",
  "startday_1"=>"11",
  "startyear_1"=>"12",
  "endmonth_1"=>"2",
  "endday_1"=>"13",
  "endyear_1"=>"12",
  "price_1"=>"12",
}

私がするなら

@startee = @startyear.to_s + '-' + @startmonth.to_s + '-' + @startday
return render :text => @startee

私は得る:

12-2-11

だから私は問題を見ていません。すべてが正常に機能しているようです。

4

1 に答える 1

14

Date.new整数を渡す必要があるときに文字列を渡すのは次のとおりです。

@startday = params[:"startday_#{i}"]
@startmonth = params[:"startmonth_#{i}"]
@startyear = params[:"startyear_#{i}"].to_s
@endday = params[:"endday_#{i}"]
@endmonth = params[:"endmonth_#{i}"]
@endyear = params[:"endyear_#{i}"].to_s
@startdate = params[:"startdate_#{i}"]
@price = params[:"price_#{i}"]
@currency = params[:currency]

@startdate = Date.new(@startyear.to_i, @startmonth.to_i, @startday.to_i)
@enddate = Date.new(@endyear.to_i, @endmonth.to_i, @endday.to_i)

さらに、ビューでこれらの変数を使用する必要がない場合は、インスタンス変数にする必要はなく、代わりにローカル変数にする必要があります(つまり@、名前の先頭を削除します)。

于 2012-09-19T01:01:39.687 に答える