0

私は自分の協会のどこかで :through を使用する必要があると思いますが、私はこれに非常に慣れていないので、助けていただければ幸いです。

簡単にするために、3 つのモデルがあるとします。

Faults
Users
FaultComments

どこ

Faults - belong_to :user and has_many :fault_comments
Users - has_many :faults and has_many :fault_comments
FaultComments - belongs_to :fault and belongs_to: user

私がやりたいのは、障害表示ページから障害コメントを追加する機能です。現在、以下を持っていますが、すべてを正常に機能させることができません。

ルート.rb

devise_for :users do
 get '/users/sign_out' => 'devise/sessions#destroy'
end
resources :faults 
resources :fault_comments

ビュー/障害/show.html.erb

<h3>Add New</h3>
<%= form_for @faultcomment, :url => fault_comments_path(:fault_id => @fault.id, :user_id => current_user.id) do |f| %>
<%= f.text_field :comment %>
<%= f.submit %>
<% end %>

コントローラー/faults_comments_controller.rb

def create
 @fault = Fault.find(params[:fault_id])
 @faultcomment = @fault.fault_comments.new(params[:faultcomment])
 @faultcomment.user_id = params[:user_id]
 @faultcomment.comment = :comment
 if @faultcomment.save
  redirect_to faults_path
 end
end
4

1 に答える 1