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

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

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

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

Q&A

解決済

1回答

415閲覧

Rails6 購入者かどうかの判定 customer_idの保持

mbaby__8

総合スコア66

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/08/28 02:01

購入者には広告の非表示などがしたく、Stripeでサブスクリプションの機能の実装が出来たのですが、

購入者かどうかを判定しつづけるにはどうしたらいいのでしょうか?

deviseを使ったときのUserモデルとStripe用のPageモデルを紐づけています。

支払いが完了したときに、customer_idが出来るのでcustomer_idがTrueかFalseで判別すればいいのでしょうか?

deviseだとUser登録しているかどうかはuser_signed_in?で判定できるのですが、
自分で作ったのだとどうすればいいのかわからないので教えて頂けると幸いです。

controller

1 def success_payment 2 user = current_user 3 session = Stripe::Checkout::Session.retrieve(params[:session_id]) 4 @pages = Page.create(user_id: user.id, customer_id: session.customer) 5 flash[:notice] = "Payment Successful" 6 end
Table "public.users" Column | Type | Modifiers ------------------------+--------------------------------+---------------------------------------------------- id | bigint | not null default nextval('users_id_seq'::regclass) email | character varying | not null default ''::character varying encrypted_password | character varying | not null default ''::character varying reset_password_token | character varying | reset_password_sent_at | timestamp without time zone | remember_created_at | timestamp without time zone | created_at | timestamp(6) without time zone | not null updated_at | timestamp(6) without time zone | not null user | boolean | default false name | character varying | area | character varying | language | character varying | age | integer | uid | character varying | provider | character varying | accepted | boolean```
Table "public.pages" Column | Type | Modifiers -------------+--------------------------------+---------------------------------------------------- id | bigint | not null default nextval('pages_id_seq'::regclass) customer_id | integer | created_at | timestamp(6) without time zone | not null updated_at | timestamp(6) without time zone | not null user_id | bigint |

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

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

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

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

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

guest

回答1

0

ベストアンサー

current_user.idがpageテーブルのuser_idと一致していれば、のロジックでできないでしょうか

ruby

1@pages = Page.create(user_id: user.id, customer_id: session.customer)

これ見るとpageのuser_idはdeviseのuser.idで生成しているように見えるので

投稿2021/08/28 02:25

tonakai_route

総合スコア28

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

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

mbaby__8

2021/08/30 08:22

<%if @mem.include?(current_user.id) %> 入ってます <%else%> 入ってません <%end%> で出来ました。 ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問