私は自分の協会のどこかで :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