質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

964閲覧

チェックに合わせてポイントを合算

naoya0206k1

総合スコア12

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2017/05/21 03:01

###前提・実現したいこと
開発言語:Ruby
実装したい内容:
①ユーザが当てはまる質問のチェックボックスにチェックを入れていく。
②各チェックボックスにそれぞれの得点を割り振っておく
③チェックしたところの得点を受け取って合算する
④その合計得点に対応する文章を静的に表示する

###発生している問題・エラーメッセージ
どう実装したらいいか手順が全然分かっていない状態です
既に記述しているところも間違っていそうです、、、

コメントアウトしている箇所のこういう手順で実装したらいけるんじゃないか、というところが間違ってないかだけでもお教え頂けると幸いです。

###該当のソースコード

class MitibikiController < ApplicationController def home end def index #check_boxに応じてpointをゲットする @point = Point.new point = @point i = 0 while i < 10 do puts point[i].to_i end #pointを文字列から数値に変換する #数値を合算する #合算した数値に合わせて文を表示する end end

ちなみに、HTMLはこちらです。

<p>当てはまる項目にチェックするだけでOK!そしたら自分が次にどう行動するのがいいのか手に取るように分かるよ!</p> <h3>では、質問START!</h3> <%= form_tag( { :controller => "mitibiki", :action => "index"}, { :methos => :get, :id => "fm" } ) do |f| %> <p><%= check_box_tag :point, :value => "5" %>途上国スタディツアーに参加したことがある</P> <p><%= check_box_tag :point, :value => "2" %>国際協力に興味があるほうだと思う</p> <p><%= check_box_tag :point, :value => "5" %>口座引き落とし制の寄付を登録している</p> <p><%= check_box_tag :point, :value => "3" %>国際NGOの名前を3つは言える</p> <p><%= check_box_tag :point, :value => "1" %>本が好き</p> <p><%= check_box_tag :point, :value => "2" %>海外に行ったことがある</p> <p><%= check_box_tag :point, :value => "3" %>ボランティアをしたことがある</p> <p><%= check_box_tag :point, :value => "2" %>フェアトレード商品とは何か説明できる</p> <p><%= check_box_tag :point, :value => "2" %>プロボノとはなにかわかる</p> <%= submit_tag '送信' %> <% end %>

###補足情報
初めて質問するので説明の仕方もめちゃくちゃかもしれません。ご教授頂けると幸いです。よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gouf

2017/05/21 04:28

ビュー側のフォームからsubmit された情報はparams にまとめられるのですが、そのとき"質問集" の情報・値は独立している状態でしょうか、それとも配列としてまとまっていますか?
naoya0206k1

2017/06/01 01:46

返答遅れて申し訳ありません。独立しています。
guest

回答1

0

ベストアンサー

Rubyタグしか付いていませんが
Ruby on Railsの質問ではないのですか?
RubyとRuby on Railsは別言語なので、そこは意識してください。

まず
point=["3","5","1","9"]
とすると

ruby

1 #pointを文字列から数値に変換する 2point.map(&:to_i) 3 #pointを文字列から数値に変換して数値を合算する 4value=point.map(&:to_i).inject(:+) 5 #合算した数値に合わせて文を表示する 6case value 7when 1..2 #合計が1~2の時 8puts "君は社会貢献心の少ないフレンズなんだね" 9when 3..9 #合計が3~9の時 10puts "君はやる気はあるけど、まだよくわかっていないフレンズなんだね" 11when 10..20 #合計が3~9の時 12puts "すごーい" 13end 14

と言った感じにかけます。

しかし本当にこのままだとRubyだけの話なので
ちょっと全体的な設計の話をすると。

  • まず、ロジックが見えてしまっていいのか?(点数丸見えやん)
  • 又、質問をに変更があったり、点数の評価を変るときに今のままではviewをいちいち書き直さないといけませんが問題なはないのですか?
  • 質問はこれだけなんですか?他の質問を作りたくなった時に又controllerとviewを作り直すんですか?
  • 次やることを一次元評価(スカラーの点数のみ)で決めれるんでしょうか?
  • 回答結果を保存して後から参照する必要は?

上記の一つでもあれっと思ったら。
Ruby on Railsに従って

question_title modelと
question_content model
を作成してcollection_check_boxes
というヘルパーを使うと、後で、カスタマイズ可能な
プログラムがスッキリかけます。(というかそれがRailsです。)

投稿2017/05/21 04:55

編集2017/05/21 05:41
moke

総合スコア2241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naoya0206k1

2017/06/01 01:44

ありがとうございます。連絡遅れてすみませんでした。 全然仕組み分かってなかっいのですごく分かりやすく書いて頂いて、大変助かります。 頂いた回答を参照しながらやってみます(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問