Создать объект с несколькими ассоциациями в ruby ​​на рельсах - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть 3 объекта: статья, комментарий и пользователь. Я хочу, чтобы при публикации комментария в форме комментарий связывался со статьей И пользователем.

Когда у меня были только статья и комментарий, онбыло идеально: мы могли отправить форму, создать комментарий, и он был показан.

Форма комментария:

<%= form_with(model: [ @article, @article.comments.build ], local: true) do |form| %>
    <p>
      <%= form.label :body %><br>
      <%= form.text_area(:body, {:class => 'form-control'} ) %>
    </p>
    <p>
      <%= form.submit({:class => 'btn btn-success'}) %>
    </p>
<% end %>

Создать метод CommentsController:

before_action :authenticate_user!
def create
    @article = Article.find(params[:article_id])
    @comment = @article.comments.build(comment_params)
    @comment.commenter = current_user
    @comment.save
    redirect_to article_path(@article)
end

И модели:

class Comment < ApplicationRecord
  belongs_to :article
  belongs_to :user
end

class User < ApplicationRecord
  has_many :comments, dependent: :destroy
  # Some devise things
end

class Comment < ApplicationRecord
  belongs_to :article
  belongs_to :user
end

Я хочу, чтобы комментарий помещался в базу данных, но фактический результат - ничего не сделано: комментарий просто игнорируется, и я не знаю почему.Я уже ищу здесь, я нашел тему с похожей проблемой, но решение было моим реальным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...