I’m new to Ruby and to Rails, so this whole problem is probably just bad
coding on my part, but on the same object, .save and .destroy are
accessing separate database tables, one which exists (which I want them
to access), and one which doesn’t. The code causing issues:
def message_sending
@message.sent_at = Time.now
if @message.update_attributes(params[:message])
hold = Object.new
hold = @message.recipients.downcase.split(",")
i=0
trfa = false
if @message.title.length > DB_STRING_MAX_LENGTH
flash[:notice] = "Title too long!"
@message.destroy
elsif @message.recipients.length > DB_STRING_MAX_LENGTH
flash[:notice] = "Too many recipients!"
@message.destroy
elsif @message.body.length > DB_TEXT_MAX_LENGTH
flash[:notice] = "Body text too long!"
@message.destroy
else
while (i<hold.length)
if User.find_by_screen_name(hold[i]) == nil
flash[:notice] = "Recipient " + hold[i] + " doesn't exist!"
@message.destroy
break
else
if trfa == false
@message.recipients =
User.find_by_screen_name(hold[i]).get_user_id.to_s
trfa = true
else
@message.recipients = @message.recipients + “,” +
User.find_by_screen_name(hold[i]).get_user_id.to_s
end
i=i+1
end
@message.sender = find_user_and_messages.get_user_id.to_s
@message.save
redirect_to hub_url
flash[:notice] = “Message Sent!”
end
end
end
end
Using @message.save anywhere in that code will access the correct
“messages” table. However, an @message.destroy will attempt to access
the nonexistent “messages_users” table. I’m completely stumped as to
why .save can access the right table when .destroy can’t. Any help
would be much appreciated.