前提・実現したいこと
Railsアプリで素数かどうかを判定するアプリを作成したいのですが、
素数を判定するPrimeライブラリがRailsで使用できなくて困っています。
ターミナルでは実行出来たのですが、Railsのアクションに組み込もうとすると
どうしてもエラーが発生していまします。
発生している問題・エラーメッセージ
numbers_controller.rb
class NumbersController < ApplicationController protect_from_forgery def index @num = params['input1'] if @num.to_i == 0 @msg = "数値ではありません" elsif Prime.prime(@num) == true @msg = "素数です" elsif Prime.prime(@num) == false @msg = "素数ではありません" else @msg = "数値をもう一度入力してください" end end
###rotes.rb
Rails.application.routes.draw do root to: "numbers#index" get 'numbers/index' get 'numbers', to: 'numbers#index' post 'numbers', to: 'numbers#index' post 'numbers/index' end
index.html.erb
<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous"> <title></title> </head> <body> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script> </body> </html> <div class="form-group col-sm-5 mt-5"> <p><%= @msg %></p> <form method="POST" action="/numbers/index"> <input type = "text" class = "form-control" name = "input1" value="<%= @value %>"> <input type="submit" class="btn btn-primary", placeholder="判定する"> </form> </div>
試したこと
numbers_controller.rbにrequire 'prime'を書き込んでもPrimeが使えず、
if文のスコープ内に書き込んでもダメでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/11 04:54
2020/04/11 05:50
2020/04/11 09:23