質問編集履歴

1 質問テーマを変更しました。

koume

koume score 162

2017/12/19 22:32  投稿

Rails5.1.3でWebアプリケーション制作の勉強をしています。入力フォームで新規にcustomerテーブルに登録したレコードを
取り出し、関連付けされたテーブルを作成したいのですが、customerテーブルのレコードを取り出す方法がわからないので
教えていただけないでしょうか?
やりたいことはcustomerテーブルに新規にユーザー登録が成功した場合にpointテーブルを作成したいのです。
```ここに言語を入力
この3つのうちのどれかで取り出せるのでしょうか?
customer = Customer.find(params[:id])
customer = Customer.find_by(id: (params[:id])
customer = Customer.find_by(id: current_customer.id)
```
またcustomerテーブルと関連付いたpointテーブルを作成するにはcreateアクションに以下のように記述すればいいのでしょうか?
```ここに言語を入力
def create
@customer_form = Staff::CustomerForm.new
@customer_form.assign_attributes(params[:form])
if @customer_form.save
customer = Customer.find(params[:id])-------------登録に成功したcustomerテーブルのレコードを取り出す。
point = customer.build_point-----------------------関連付けられたpointテーブルにレコードを作成。
point.save----------------------------------------pointテーブルに保存する。
flash.notice = '顧客を追加しました。'
redirect_to action: 'index'
else
flash.now.alert = '入力に誤りがあります。'
render action: 'new'
end
end
```
自分では、if @customer_form.save でcustomerテーブルに保存が成功した場合に
customer = Customer.find(params[:id]) で登録に成功したユーザーのレコードを取り出し
point = customer.build_point でcustomerテーブルに関連付けられたpointテーブルにレコードを作成し
point.save でpointテーブルに保存する。と記述したつもりです。それとも別の方法があるのでしょうか?
どなたか教えていただけないでしょうか?宜しくお願いします。
特に登録に成功したユーザーのレコードを取り出す方法がわからないので教えてください。
  • Ruby

    13871 questions

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

  • Ruby on Rails

    14398 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る