I use Device as Utente model, I have a sort of blog composed of controllers and model Messaggi and controllers model Commenti. The Messaggi work and are saved through Utente ID, while I can’t solve the problem for the saving of Commenti. Even if it doesn’t display any error.
my MessaggiController
class MessaggiController < ApplicationController
before_action :authenticate_utente!def index
argo = params[:argo]
if !argo.nil?
messaggi = Messaggio.where(:argomento_id => argo)
argomento = Argomento.where(:id => argo).first.argomento
else
messaggi = Messaggio.all
end
argomenti = Argomento.all
enddef show
messaggio = Messaggio.find(params[:id])
commento = Commento.new
commento.messaggio_id = messaggio.id
enddef new
messaggio = current_utente.messaggi.build
commento = Commento.new
commento.messaggio_id = messaggio.id
enddef create
messaggio = current_utente.messaggi.build(messaggio_params)respond_to do |format| if messaggio.save format.html { redirect_to messaggio, notice: 'Messaggio was successfully created.' } format.json { render :show, status: :created, location: messaggio } else format.html { render :new } format.json { render json: messaggio.errors, status: :unprocessable_entity } end end
end
def edit
messaggio = Messaggio.find(params[:id])
enddef update
messaggio = Messaggio.find(params[:id])
respond_to do |format|
if messaggio.update(messaggio_params)
format.html { redirect_to messaggio, notice: ‘Messaggio was successfully updated.’ }
format.json { render :show, status: :ok, location: messaggio }
else
format.html { render :edit }
format.json { render json: messaggio.errors, status: :unprocessable_entity }
end
end
enddef destroy
messaggio = Messaggio.find(params[:id])
messaggio.destroy
respond_to do |format|
format.html { redirect_to messaggi_url, notice: ‘Messaggio was successfully destroyed.’ }
format.json { head :no_content }
end
endprivate def messaggio_params params.require(:messaggio).permit(:titolo, :testo, :argomento_id, :utente_id) end
end
My CommentsController
class CommentiController < ApplicationController
before_action :find_commento, only: [:create, :destroy] before_action :commento_auth, only: [:destroy] def create #@post = Post.find(params[:post_id]) #@comment = @post.comments.create(params[:comment].permit(:name, :body)) #redirect_to post_path(@post) #new format @messaggio = Messaggio.find(params[:messaggio_id]) #post = current_user.posts.build(post_params) commento = current_utente.commenti.build(commento_params) redirect_to messaggio_path(messaggio) end def destroy commento = messaggio.commenti.find(params[:id]).destroy redirect_to messaggi_path end private def commento_params params.require(:commento).permit(:testo, :commento_id, :utente_id) end def find_commento messaggio = Messaggio.find(params[:messaggio_id]) end def commento_auth if current_utente != messaggio.utente redirect_to(messaggi_path) end end end
and my relationship
Utente.rb
has_many :messaggi
has_many :commenti
Messaggio.rb
belongs_to :utente
has_many :commenti
Commenti.rb
belongs_to :utente
belongs_to :messaggio
Thanks a lot for helping.