I'm a new to Ruby on Rails. Here I have model called "Pesans". I also have controller called "sessions". Pesans has 3 attributes (receiver, sender and text)
The user could compose new message. When composing Message, I have method in sessions controller:
def createPesan
user = Users.find_by_username(params[:receiver])
if user
pesan = Pesans.new
pesan.receiver = params[:receiver]
user = Users.find(session[:user_id])
pesan.sender = user.username
pesan.text = params[:text]
pesan.save
render 'message'
else
render 'MsgError'
end
end
It works perfectly fine (I also looked up into the database using rails command prompt, and the new message really is saved). Here is my method in sessions controller to fetch the message:
def current_inbox
@current_inbox ||= current_user && Pesans.where(["receiver = ?", current_user.username]).select("sender, text").all
end
And I have code in my view to show Pesans corresponding to current_user (logged user in the inbox web):
<% if @current_inbox.blank? %>
Inbox Empty
<% else %>
<% for pesan in @current_inbox %>
<%= pesan.sender %> <br>
<%= pesan.text %> <br>
<% end %>
<% end %>
But it keeps showing "Inbox Empty" although there's a message for corresponding user (current_user.username). Where did I go wrong?