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

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

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

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

Ruby on Rails

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

Q&A

2回答

757閲覧

editの際、アソシエーション先の入力を求められる

KOO_

総合スコア58

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/08/25 13:29

編集2020/08/25 17:37

こんにちわ。現在編集画面のプログラムを行なっております。

当編集画面においては、1:1のアソシエーションをmember:companyで組んでおります。

edit画面にて編集を行い、アップデートを行おうとすると、

(0.1ms) begin transaction ↳ app/controllers/companies_controller.rb:24 (0.0ms) rollback transaction ↳ app/controllers/companies_controller.rb:24

rollbackされてしまいます。
ターミナルを確認するとidはきちんと認識されているようです。

Parameters: {"utf8"=>"✓", "commit"=>"確認画面へ", "id"=>"1"}

ここがどうして通らないのかでつまずいています。ご教示よろしくお願い致します。

def edit @company = Company.find(params[:id]) @company.member_id = current_member.id end def update @company = Company.find(params[:id]) @company.member_id = current_member.id if @company.update(company_params) redirect_to "/members/#{current_member.id}" else render 'edit' end end
private def company_params params.require(:company).permit( :company, #会社名... :price #価格 ).merge(member_id: @member_id)

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

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

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

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

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

hatsu

2020/08/25 15:21

company_paramsの値はわかりますでしょうか?
KOO_

2020/08/25 17:37

お世話になっております。 先ほど追加しました。よろしくお願い致します。
guest

回答2

0

情報が欲しい、、
app/models/company.rb を載せてください。 関連やvalidationを見たい。
app/views/companies/edit.html.* を載せてください。

で、
エラーを簡単に見るには 一時的に if @company.update!(company_params) と ! をつけてください。
画面にエラー表示がでますのでそれを載せてください。(text貼り付けが嬉しい)

###疑問
@company.member_id って editする毎に editした人に変わるの?

投稿2020/08/30 23:07

winterboum

総合スコア23567

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

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

0

コンソールにて
適当なパラメータで
company.saveした後に

@company = Company.find(id) @company.member_id = current_member.id @company.update(company_params) @company.errors

でエラーを確認できませんか?

もしくは

if @company.update(company_params)

の直後にdebuggerを差し込んでみるとか

投稿2020/08/26 03:57

naokit-dev

総合スコア424

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

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

KOO_

2020/08/26 04:18

ありがとうございます。 @company.member_id = current_member.id にてエラーが出たので、 .merge(member_id: @member_id) を無くしたところ動作しました。この部分を外すこと自体は他の動作に影響はないのでしょうか。
naokit-dev

2020/08/26 04:25

> @company.member_id = current_member.id > にてエラーが出たので、 コンソールで試されたのでしたら current_memberが未定義だからではないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問