現在Ruby on Railsでタスク管理アプリを作成しています。
form_withで入力した値をtaskテーブルとstatusテーブルに保存したのですが、エラーが出てできません。
多対1で作成しています。
task:status=多:1
エラー内容
Unpermitted parameter: :status
コントローラー
class TasksController < ApplicationController def new @task = Task.new @status = Status.new end def create @task = Task.new(task_params) @status = Status.new if @task.save @status.save flash[:notice] = 'タスクを作成しました' redirect_to task_path(@task) else flash.now[:alert] = 'タスクを作成できませんでした' render :new end end private def task_params params.require(:task).permit(:title, :content, :deadline, status_attributes: [:name]) end end
ビュー
<%= form_with model: @task, local: true do |f| %> <%= f.label :title, "タイトル" %> <%= f.text_field :title %> <%= f.label :content, "内容" %> <%= f.text_area :content %> <%= f.label :deadline, "終了期限" %> <%= f.date_select :deadline %> <%= f.fields_for :status do |s| %> <%= s.label :name, "ステータス" %> <%= s.radio_button :name, :not_started %> <%= s.label :name, "未着手", {value: :not_started} %> <%= s.radio_button :name, :underway %> <%= s.label :name, "着手中", {value: :underway} %> <%= s.radio_button :name, :complete %> <%= s.label :name, "完了", {value: :complete} %> <% end %> <%= f.submit "タスク作成" %> <% end %>
モデル(task.rb)
class Task < ApplicationRecord validates :title, presence: true, length: { maximum: 30 } validates :content, length: { maximum: 250 } belongs_to :status, dependent: :destroy end
モデル(status.rb)
class Status < ApplicationRecord has_many :tasks accepts_nested_attributes_for :tasks end
ログ
Started POST "/tasks" for 172.19.0.1 at 2020-07-10 14:45:34 +0900 Cannot render console from 172.19.0.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 Processing by TasksController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"8O+9Fzch4wTQ9N3iN2KnjCChvZ/nVNbLm3OEzKfxxrxEK/Aqi9gMkmBQuThEOh4vK+3KRv2h6gVUdbIrwVT0hg==", "task"=>{"title"=>"test", "content"=>"", "deadline(1i)"=>"2020", "deadline(2i)"=>"7", "deadline(3i)"=>"10", "status"=>{"name"=>"complete"}}, "commit"=>"タスク作成"} Unpermitted parameter: :status [1m[35m (0.4ms)[0m [1m[35mBEGIN[0m ↳ app/controllers/tasks_controller.rb:26 [1m[35m (0.3ms)[0m [1m[31mROLLBACK[0m ↳ app/controllers/tasks_controller.rb:26 Rendering tasks/new.html.erb within layouts/application Rendered tasks/new.html.erb within layouts/application (3.4ms) Rendered layouts/_navbar.html.erb (0.4ms) Rendered layouts/_flash.html.erb (0.4ms) Completed 200 OK in 146ms (Views: 140.4ms | ActiveRecord: 0.7ms)
ネットに乗っている手法は一通り試してみたのですが、どうしても解決できません。
ご教授頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。