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

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

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

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

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

2059閲覧

railsバリデーション後にjavascriptを読み込めない

daikitakaya

総合スコア229

Ruby

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

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/09/19 05:48

編集2016/09/22 07:25

###前提・実現したいこと
ブログ機能を作っているのですが、投稿失敗した時にエラーを吐いてかつjavascriptが読み込まれるようにしたいと思っています。(javascriptはタグ機能を記事投稿画面で使っているので読み込むようにしたいです。)

###該当の箇所(コントローラー)

/articles/controller/articles_controller.rb def create @article = Article.new(article_params) respond_to do |format| if @article.save format.html { redirect_to portfolio_path(@article), notice: 'Article was successfully created.' } format.json { render :show, status: :created, location: @article } redirect_to portfolio_path(@article) else format.html { render :new } format.json { render json: @article.errors, status: :unprocessable_entity } end end end def update respond_to do |format| if @article.update(article_params) format.html { redirect_to portfolio_path(@article), notice: 'Article was successfully updated.' } format.json { render :show, status: :ok, location: @article } else format.html { render :new } format.json { render json: @article.errors, status: :unprocessable_entity } end end end
require 'length_with_wide_char_validator' class Article < ActiveRecord::Base validates :image, :video_id, presence: true validates :title, :length_with_wide_char => {:maximum => 70} validates :description, length: { maximum: 500 } end

上記のようにモデルにバリデーションを書いているのでエラーは正常に表示されます。しかし、投稿失敗した時にformat.html { render :new }で得るページでjsファイルが読み込まれません。読み込むためにどのような記述をすればいいのか教えていただきたいです。

###追記
railsでデフォルトで入っているturbolinksはoffにしてあります。

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

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

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

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

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

guest

回答1

0

ベストアンサー

引用テキストarticles_controller内の
updateの失敗時(render :new)の前に

@execute_js = 'true'

のような、インスタンス変数などを設定してあげて、

それを、view側(おそらく、app/views/articles/new.html.erb)で
hidden_field_tagに埋め込んで、

hidden_field_tag('execute_js',@execute_js, class:'execute_js')

Javascriptでhidden_field_tagの値を調べて、実行するべき値が入っていたら
該当のJavascriptを実行するというのはどうでしょうか?

投稿2016/09/24 01:47

ReiLeiLei1025

総合スコア236

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

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

daikitakaya

2016/09/26 09:44

回答ありがとうございます。 jsでの実行参考にさせていただきます。
ReiLeiLei1025

2016/09/26 12:26

ただし、このやり方だと、 view(おそらく、app/views/articles/new.html.erb)で hidden_field_tag('execute_js',@execute_js, class:'execute_js') で、@execute_jsの値を埋め込むようになっているので、 インスタンス変数(この場合、@execute_js) が設定されていないと NoMethodErrorが起きると思いますので注意してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問