フォームに書いた値をDBに保存したいのですが、rails c
でテーブルの中を確認してみるとnilとなっていて何も保存されていませんでした。そもそもどこで問題が起きているのかが分からず、どう直せばいいのか困っています。
また、例えばXcodeにあるbreak pointのように、どこでエラーが起きているのか探る方法もRailsでありました教えてください。
使っているDBはmysqlで、テンプレートエンジンにslimを使っています。
controller
class Admins::CompaniesController < ApplicationController def index end def create @company = Company.new( agreement_company: params[:agreement_company], email_adress: params[:email_adress] ) @company.save end end
index.html.slim
= form_tag("companies/create") do .form-group label | 会社 input.form-control[name="agreement_company"] .form-group label | メールアドレス input.form-control[name="email_adress"] .box-footer button.btn.btn-primary[type="submit"] | 新規追加 end
routes.rb
Rails.application.routes.draw do namespace :admins do resources :companies end root to: 'home#index' post "companies/create" => "companies#create" end
#追記
gouf様に教えていただいた通りにしてみたところ
index.html.slimのagreement_company
とemail_adress
の二つのパラメータには値が入っているようです。
Started GET "/admins/companies?utf8=%E2%9C%93&authenticity_token=2lVJ8XLxDKXOxP2dVVkBzDjBcvlhmo0Mxi67XYEbXMYpGjEe3jBtF5xYgGNxJewyLZyBbI7veScBiTjEm3kabw%3D%3D&agreement_company=Bcompany&email_adress=b%40b.com" for 127.0.0.1 at 2017-08-12 19:15:26 +0900 Processing by Admins::CompaniesController#index as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"2lVJ8XLxDKXOxP2dVVkBzDjBcvlhmo0Mxi67XYEbXMYpGjEe3jBtF5xYgGNxJewyLZyBbI7veScBiTjEm3kabw==", "agreement_company"=>"Bcompany", "email_adress"=>"b@b.com"} Rendering admins/companies/index.html.slim within layouts/application Rendered admins/companies/index.html.slim within layouts/application (18.3ms) Completed 200 OK in 50ms (Views: 48.9ms | ActiveRecord: 0.0ms)
しかし、コントローラーのparams
はnil
となっていました。
フォームで受け取った値が、layouts/application
に入っているということなんでしょうか?
回答1件
あなたの回答
tips
プレビュー