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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top