I am new in ruby and trying to post comments by the user in services.
They were successfully posted in a services view page and stored in database as well but i want to check whether the comment by the user is spam or not.
I my service controller, i am posting the comment in **updating comment attributes method** then saving those in **update method**
What i am doing is listed below:-
def update_comment_attributes
params[:service][:comments_attributes].each{ |k, v| v.merge!(user_id: session[:user_id]).merge!(author: User.where(:id => session[:user_id]).pluck(:name).first ).merge!(author_email: User.where(:id => session[:user_id]).pluck(:email).first )} if params[:service] && params[:service][:comments_attributes]
end
here is update :-
def update
respond_to do |format|
if @service.update(service_params)
@comment = Comment.find_by(
service_id:@service.id, user_id: session[:user_id])
if @comment.spam?
@comment.is_spam = 'Y'
@comment.aki_response = @comment.akismet_response
@comment.update_attribute(is_spam: 'Y')
else
@comment.is_spam = 'N'
@comment.aki_response = @comment.akismet_response
@comment.save
@comment.update_attribute(:is_spam, 'N')
end
format.html { redirect_to @service, notice: 'Service was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @service.errors, status: :unprocessable_entity }
end
end
end
now as i am commenting my comments do save but it didn't check whether it is spam or not ..tried a lot got failed..
Thanks in advance