У меня есть объявление, что 'has_many' Комментарии и комментарий 'belongs_to' Отношение анонса. В моем корне я показываю объявления по каждому циклу, и я стараюсь сделать комментарий form_for под каждой новостью.рельсы 4 как передать object_id в form_for?
Моя root_path действие:
def home
@announcements = Announcement.page(params[:page]).order('id DESC')
end
А вот мой анонс цикла:
<% @announcements.each do |announcement| %>
.
.
.
<div class="create_comment form-inline">
<%= form_for(announcement.comments.build) do |form| %>
<%= form.label :author, "Autor:" %>
<%= form.text_field :author, class: "form_control" %>
<%= form.label :content, "Treść:" %>
<%= form.text_field :content, class: "form_control" %>
<%= form.submit "Dodaj!", class: "btn btn-primary", url: comments_path %>
<% end %>
</div>
</div>
<% end %>
Вот мой комментарий создать действие:
def create
@announcement = Announcement.find(params[:comment_id])
@comment = @announcement.comments.new(comments_params)
if @comment.save
flash[:success] = "Komentarz dodano"
redirect_to root_path
else
render 'static_pages/home'
end
end
private
def comments_params
params.require(:comment).permit(:author,:content)
end
Но я получаю ошибку: не мог Объявления без ID
Я знаю, что могу использовать скрытое поле и передавать его в комментарии_params, но это не безопасное решение.
Я только что начал свое приключение Rails. Если кто-нибудь знает, где моя ошибка, попробуйте сделать полное объяснение.