Всем привет, никак не могу понять как организовать nested форму!
Имеем:
Страница /posts/:id/ экшн show, на странице форма для добавления отзыва
<%= form_for([@post, @post.reviews.build]) do |review_form| %>
<div class="create_review_rb">
<%= review_form.text_area :body, class: "form-control" %>
<%= review_form.label :negative, "Положительный отзыв" %>
<%= review_form.radio_button :negative, 1, checked: true %>
<%= review_form.label :negative, "Отрицательный отзыв" %>
<%= review_form.radio_button :negative, 0 %>
<%= review_form.hidden_field :user_id, value: current_user.id %>
<%= review_form.hidden_field :for_user_id, value: @post.executor.id %>
</div>
<%= review_form.fields_for :post do |f| %>
<%= f.text_field :final, class: "form-control" %>
<%= f.label :status, "статус" %>
<%=f.radio_button :status, 3, checked: true %>
<%= f.label :status, "статус" %>
<%=f.radio_button :status, 4 %>
<% end %>
<%= review_form.submit "Добавить отзыв", class: "btn btn-large btn-primary", id: 'review_button' %>
<% end %>
Которая должна проходить через ReviewsController
class ReviewsController < ApplicationController
def new
@post = Post.find(params[:post_id])
@review = @post.reviews.new
end
def create
@post = Post.find(params[:post_id])
@review = @post.reviews.build(review_params)
if @review.save
flash[:success] = "Поздравляем Ваш отзыв добавлен"
redirect_to completed_post_path(@post)
else
render 'new'
end
end
private
def review_params
params.require(:review).permit(:negative, :post_id, :body, :user_id, :for_user_id, post_attributes:[:finalcustomerprice, :status, :id]).merge(:user_id => current_user.id)
end
end
в модели указал
class Review < ActiveRecord::Base
belongs_to :post
belongs_to :user
accepts_nested_attributes_for :post
end
на всё это rails выдает ошибку Couldn't find Post with ID=41 for Review with ID=
а если убрать accepts_nested_attributes_for :post то не понятно как strong parametrs обойти