###前提・実現したいこと
Ruby on Rails 5.0.0 と chartkick で、チャートを表示しようとしています。
単純な表示はできたので、条件指定による表示にトライしています。
セレクトボックスで商品(@niku)を選択、ラジオボタンで期間(@term)を選択し、
取得したインスタンス変数を、method: "post" で、 controller に飛し、
params[: ]で、受けた変数を処理したいコードに代入して表示させようとしています。
###発生している問題・エラーメッセージ
この作業を編集しながら保存し、グラフ表示ボタンを押すとうまく動くのですが、
ブラウザの再読込みを押した途端、エラーになります。
エラーメッセージ Arel::Visitors::UnsupportedVisitError in ChartsController#show Unsupported argument type: NilClass. Construct an Arel node instead.
###該当のソースコード
chart_controller.rb def show item = params[:@niku] t = params[:@term].to_i d = Date.new((params[:@nen]).to_i, (params[:@tuki]).to_i, 1) @smomoarray = Admin::Chart.where(keisaiday: d..(d + t.month)).where('smomo is not 0').pluck(:keisaiday, item)
###試したこと
元のコードに戻すとエラーはなくなり画面も表示される。しかし、(あたりまえだけど)
商品や期間は選べない。
def show item = params[:@niku] t = params[:@term].to_i d = Date.today @smomoarray = Admin::Chart.where(keisaiday: (d - t.month)..d).where('smomo is not 0').pluck(:keisaiday, :smomo)
###推測
検索してもなかなか見つからない見慣れないエラーだが、ページ読み込み時にpost
されるデータが、まだなにも決まってなく送られていない状態なので、Nilclassのエラー
が出ているのかな。
###もし推測があっているとしたら
もし推測があっているとしたら、ページの読み込み時に、セットしておいたデフォルト値を
post してエラーを回避したい。
###質問
ページ読み込み時に post したい変数をデフォルト値として設定しておいてポストする
ことはできますか?
できるとすると、どこをどのようにすればいいですか?
質問ばかりで申し訳ありませんが、教えてください。よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/19 10:26
2016/08/19 10:29
2016/08/19 14:27
2016/08/20 05:47