comentarios ahorro objeto con relación a un rubí .build actualización de estado
-
26-09-2019 - |
Pregunta
Tengo una actualización de estado, y la tabla db comentario.
Un usuario tiene muchas actualizaciones de estado, y una actualización de estado tiene muchos comentarios. Al igual que en Facebook, los usuarios Cuando un amigo se va a la página de alimentación de usuarios (mostrar la página), que deben ser capaces de comentarios sobre las actualizaciones de estado de los usuarios.
Tengo problemas ahorrando un comentario usuarios amigos .. mi código está por debajo .. Creo que tiene algo que ver con los comentarios del controlador, cree método ", @comment = @ statusupdate.comments.build (params [: comentario]) "
ningún tipo de orientación es muy apreciada! gracias!
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@statusupdates = @user.statusupdates.paginate(:page => params[:page], :per_page => 25)
@statusupdate = Statusupdate.new
@comment = Comment.new
end
end
show.html.erb
<% form_for @statusupdate do |f| %>
<%= f.error_messages %>
<div class="field">
<%= f.text_field :content %>
</div>
<% @statusupdates.each do |s| %>
<%= s.content %><br />
<% form_for @comment do |f| %>
<%= f.error_messages %>
<div class="field">
<%= f.text_field :comment %>
</div>
<div class="field">
<%= f.hidden_field :user_id, :value => current_user.id %>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<br><br>
<% end %>
<% end %>
class CommentsController < ApplicationController
def create
@comment = @statusupdate.comments.build(params[:comment])
if @comment.save
flash[:success] = "Comment created!"
redirect_to root_path
else
@feed_items = []
render 'pages/home'
end
end
end
Solución 2
show.html.erb- He cambiado la línea superior de la hoja de comentarios actualización de estado a:
<% form_for (s, s.comments.build) do |f| %>
...
class CommentsController < ApplicationController
def create
@statusupdate = statusupdate.find(params[:statusupdate_id])
@comment = @statusupdate.comments.create(params[:comment])
...
No lo sé exactamente lo que está pasando aquí, pero funcionó para mí ~ espero que ayude a alguien por ~
Otros consejos
Comprobar el código HTML de la forma para asegurarse de que su derecho. También ver qué parámetros están siendo enviados a la acción create.
Lo principal que veo es que los formularios para la actualización de estado y los comentarios están anidados, y ambos utilizan el parámetro del bloque f. Esto podría causar que las cosas se ponen muy extraño (sobre todo porque el alcance de los parámetros de bloque difiere entre rubí 1.8 y 1.9). También parece que en realidad no desea que las formas anidadas. También debe probablemente fijar la muesca en su html.