User と Description の 2 つのモデルがあります。すべてのユーザーには 1 つの説明があり、すべての説明はユーザーに属します。説明を作成するフォームを作成しましたが、ビューで説明データを取得しようとすると、取得できませんでした。データベースを確認しましたが、説明テーブルの user_id 列が更新されていません。これは、has_one/belongs_to 関係で自動的に発生するはずだと思いました。user_id フィールドにユーザーの ID が自動的に入力されるようにするにはどうすればよいですか?
ここに私のユーザーモデルがあります:
class User < ActiveRecord::Base
has_one :description
accepts_nested_attributes_for :description
end
これが私の説明モデルです::
class Description < ActiveRecord::Base
belongs_to :user
end
ここに私の記述コントローラがあります:
class DescriptionsController < ApplicationController
def new
@description = Description.new
@current = current_user.id
end
def create
#Description.create(description_params)
@description = Description.create(description_params)
redirect_to student_path
end
def index
end
private
def description_params
params.require(:description).permit(:skills, :looking_for, :my_idea, :user_id)
end
end
そして、ここにビューがあります:
<div class="span6 offset3 text-center">
<h1>Edit your information</h1>
<%= simple_form_for @description do |f| %>
<%= f.input :skills %>
<%= f.input :looking_for, :label => 'What help do you need?' %>
<%= f.input :my_idea %>
<%= f.input :user_id, :as => :hidden, :value => @current %>
<%= f.submit "Save", :class => "btn btn-primary btn-large" %>
<% end %>
</div>
受け入れられたパラメーターから user_id を削除しようとしましたが、何もしません。また、非表示フィールドを使用して user_id を渡そうとしましたが、これは機能しませんでしたが、それが必要であるとは思わず、問題を解決する正しい方法ではないと思います。