###自分で作った簡単なメソッドをWEBサイト上で動かしたい。
Rails 4 で作ったサイト上に、第N項(1=< N =< 100)のフィボナッチ数列の値を表示させるメソッドを作ったのですが、うまく表示されません。
###発生している問題・エラーメッセージ
Nが1以上100以下の範囲を外れたり、数字以外を入力したりした場合は、errorと表示させるようにしていて、errorは表示されるのですが、1~100の値を入れると何も表示されなくなってしまいます。
###該当のソースコード
↓↓結果が表示されるページのコード↓↓
html
1<%= form_tag("", method: "get") do %> #=>同じページのURLにクエリ形式でパラメータを付与する。 2 <%= text_field_tag 'input' %> #=>?input=""という形で取得。 3 <%= submit_tag("表示", name: nil) %> 4<% end %> 5 6<% if params[:input] == nil %> #=>パラメータが何もない時はこれが表示される。 7 <p>ここに表示されます。<p> 8<% else %> 9 <p><%= fibonaccical(params[:input])" %></p> #パラメータが付与されると、helper内に作った関数が動きだす。 10<% end %>
↓↓肝心のヘルパー内の関数のコード↓↓
ruby
1module StaticPagesHelper 2 def fibonaccical(input) 3 if input =~ /\A[1-9][0-9]*\z/ && input.to_i.between?(1, 100) 4 array = [1,1] 5 if input.to_i >= 3 6 nums = input.to_i - 2 7 nums.times do 8 sum = array[-1] + array[-2] 9 array << sum 10 end 11 end 12 "#{input}番目のフィボナッチ数列:#{array[input.to_i-1]}\n" 13 "#{input}番目までのフィボナッチ数列:" 14 i = 0 15 while i <= input.to_i-1 16 "#{array[i]} " 17 i += 1 18 end 19 else 20 "error" 21 end 22 end 23end 24
正しい値が入力された時にうまくいかない理由がわかる方がいたら、教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/15 01:54
2016/12/15 02:08