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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

915閲覧

railsでページをレンダーして表示することができません。。????

juichiro

総合スコア19

Ruby

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/10/03 07:27

編集2019/10/03 11:53

#railsでviewのレンダーがうまくいきません

railsでアプリを開発中です。new.html.slimのviewから値をpostしてコントローラーのresultメソッドに対して送りresult.html.slimで表示をしたいのですが、result.html.slimの表示ができず、new.html.slimのページのまま動きません。

#試したこと
logにcannot render from 103.5.142.234 となっていたのでググって、config/application.rbの中にconfig.web_console.whitelisted_ips = '103.5.142.234'を記述しました。log にcannot renderの表示は出なくなりましたが依然としてnew.html.slimのページから変わりません。

#現在のログ
Started POST "/calculators/result" for 103.5.142.234 at 2019-10-03 07:25:40 +0000
(0.2ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
↳ /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
Processing by CalculatorsController#result as JS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"fSnHH29fvSul7H5DJnrNaHb4CgRf8JMiDMWGCaPvMLPnHIv4Ro+avRkLoYd4ivJwFoYUw5Xf7n5/ynWJqfXJhQ==", "number"=>"3", "commit"=>"Save "}
Rendering calculators/result.html.slim within layouts/application
Rendered calculators/result.html.slim within layouts/application (2.0ms)
Completed 200 OK in 23ms (Views: 19.9ms | ActiveRecord: 0.0ms)
#追記
#new.html.slim(submitを押してもページが変わらない)
h1 飲んだビールの本数を入力!

= form_with url: calculators_result_path do |f|
= f.label :number, '本数'
= f.number_field :number
= f.submit
#calculators_controller.rb 
class CalculatorsController < ApplicationController
def new
@calculator = Calculator.new
end
def result
@number = params[:number]
end
end
#result.html.slim(new.html.slimから送られてきたフォームの中身を表示したい。
= @number

#ログにまたcannnot render console from 217.178.13.68 と表示される。
もう一度確認したところ、またcannot render console from 217.178.13.68 と表示されるようになってしまいました。しかし from以降の番号が以前と違います。

Started POST "/calculators/result" for 217.178.13.68 at 2019-10-03 11:07:22 +0000
Cannot render console from 217.178.13.68! Allowed networks: 103.5.142.234, 127.0.0.0/127.255.255.255, ::1
Processing by CalculatorsController#result as JS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"37OBGzhA/g48OdXXS0QI4HwezK8cCKN5dCE4JpDbtxNFhs38EZDZmIDeChMVtDf4HGDSaNYn3iUHLsummsFOJQ==", "number"=>"1", "commit"=>"Save "}
Rendering calculators/result.html.slim within layouts/application Rendered calculators/result.html.slim within layouts/application (2.0ms)
Completed 200 OK in 20ms (Views: 16.8ms | ActiveRecord: 0.0ms)
#開発環境
#####cloud9/mysql/rails 5.2.3/ruby2.6.3p62

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

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

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

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

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

Mugheart

2019/10/03 07:29

情報が少なすぎます。 せめて関連するファイル、もしくはコードくらいは提示してください。
juichiro

2019/10/03 11:27

ご助言頂き嬉しいです。ありがとうございます。 関連すると思う情報を追加してみましたが、勉強不足なものでこれで十分だか判断がつきません。もしも足りない情報が有れば教えていただけるとありがたいです。????
guest

回答2

0

ベストアンサー

new.html.slim(submitを押してもページが変わらない

form_withはデフォルトでremote: trueが有効になっているフォームが生成されます。
なので同期的にフォームを送信するのであればrocal: trueオプションを追加します。

slim

1= form_with url: calculators_result_path, local: true do |f|

投稿2019/10/03 14:28

Mugheart

総合スコア2349

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

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

juichiro

2019/10/03 16:33

おかげさまで解決できました。form_withのデフォルトでremote:trueになっていると知りませんでした。ありがとうございました!
guest

0

Mugheartさんの回答が正解な気がするので、打ち消し線を引いておきました。
打ち消してないところは、必ずしも間違いではないだろうなという部分です。


https://techblog.kyamanak.com/entry/2017/08/29/012909

にも記載されていたのですが、
params.require(:calaultor)[:number]
としてみてはどうでしょう?

form_withform_forを使うと、パラメータ名だけではparamsの中身を取得することができない場合があります。
どんなときにどのようなparamsが入るようになっているか、調べてみるのはありだと思います。

補足

cannot remder consoleは放置していても影響はありませんが、気になるようであれば、そのエラー文で検索してみると対処方が出てくると思います

投稿2019/10/03 14:15

編集2019/10/03 15:19
siruku6

総合スコア1382

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

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

juichiro

2019/10/03 16:35

回答ありがとうございます!paramsの中身に注意してみること勉強になりました。cannnot render consoleは特に影響しないのですね!補足まで頂き感謝です!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問