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

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

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

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

Q&A

解決済

2回答

1412閲覧

Rails4.2 DBに関係ないフォーム

smith

総合スコア73

Ruby on Rails

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

0グッド

0クリップ

投稿2015/04/14 07:07

DBに関係ないフォームを作成し、非同期通信で処理するようにしたいです。

Expected a URI like gid://app/Person/1234: #<URI::GID:0x007ffc9d6c0c40 URL:gid://xxxxx>というエラーが出てしまいます。

![イメージ説明]WIDTH:600

lang

1class InquiryController < ApplicationController 2 3 def index 4 @inquiry = Inquiry.new 5 render :action => 'index' 6 end 7 8 def confirm 9 @inquiry = Inquiry.new(inquiry_params) 10 if @inquiry.valid? 11 render :action => 'confirm' 12 else 13 render :action => 'index' 14 end 15 end 16 17 def thanks 18 @inquiry = Inquiry.new(inquiry_params) 19 20 # send mail 21 InquiryMailer.received_email(@inquiry).deliver_later 22 23 24 flash[:notice] = "お問い合わせ頂き、ありがとうございました。" 25 render :action => 'thanks' 26 end 27 28 private 29 def inquiry_params 30 params.require(:inquiry).permit(:name, :email, :type, :message) 31 end 32 33 34 35end 36

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

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

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

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

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

guest

回答2

0

ありがとうございます。

投稿2015/04/16 17:32

smith

総合スコア73

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

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

0

ベストアンサー

Inquiry というのをDBに保存したくないわけですね。 thanksでの行をcreateにすれば動くわけですよね…?

deliver_later は、データがDBに永続化されている前提で動くので、そういうエラーが出てしまいます。
Inquiryが持つ情報をjson_encodeなどでシリアライズしてあげるなどすれば動くには動くと思いますが、少しばかりトリッキーになるのであまりオススメ出来ないですね。 素直にInquiryを保存しておいて、Mailer側で正常にメールを送れたらその時にdestroyしてしまう方がいいんじゃないでしょうか。

関連する話がここにあります
http://stackoverflow.com/questions/27898183/rails-4-2-using-deliver-later-with-a-tableless-model

投稿2015/04/16 07:07

AknEp

総合スコア200

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

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

smith

2015/04/16 17:32

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問