1

これはばかげた質問ですが、いくつかの調査の後でも、この問題を修正することはできません。私の見解の1つに、訪問者から価値を得ることができるフォームがあります。その値をコントローラーのフォームに送信しようとしています。理由はわかりませんが、このコードで得られる値は0だけのようです。正しいシンタックスを使用していないと思います。これがビューからの私のコードです:

.mybox
            %p Tentative de vote.
            = @useful_tool.nbofrate
            = @useful_tool.nbtotal
            = @useful_tool.newrate
            = form_for(@useful_tool) do |f|
              = f.select :newrate, [['1 étoile', 1],['2 étoiles', 2],['3 étoiles', 3],['4 étoiles', 4],['5 étoiles', 5]]
              = f.submit

これが私のコントローラーからの私のコードです:

  def update
    @useful_tool = UsefulTool.find_by_slug!(params[:id])
    @useful_tool.nbofrate = @useful_tool.nbofrate + 1
    value = params[:newrate]
    @useful_tool.nbtotal += value.to_i
    @useful_tool.rating = @useful_tool.nbtotal / @useful_tool.nbofrate
    update! { url_for(action: "index") }
  end

明らかに価値はゼロでなければならないので、私は理由がわかりません。どんな助けでも非常にありがたいです。どうもありがとう。

4

1 に答える 1

2

to_s.to_dnbtotalとvalueで使用してみてください。

または、明示的にnilを確認できます

于 2012-12-11T13:26:56.810 に答える