The code below loads a set of data from the database. When I click on
one of the item from db, it will load more details of same item from
database and display in the <div> next to it.
Well, the code in the search view is executed when the view is rendered. It is not executed again when you inject the html using javascript.
So the if @group_trace code is only executed when the search view is rendered and @group_trace is not created yet.
What are you actually trying to achieve? What do you want to do with the if @group_trace code part? Why not just remove it? You’re still adding the data by injecting the html using javascript.
Well, the code in the search view is executed when the view is rendered.
It
is not executed again when you inject the html using javascript.
So the if @group_trace code is only executed when the search view is
rendered and @group_trace is not created yet.
What are you actually trying to achieve? What do you want to do with the
if
@group_trace code part? Why not just remove it? You're still adding the
data by injecting the html using javascript.
If I remove it, it throws a nil object exception which basically means
the object is empty.
I just want to click on this link in search.html.erb:
and it should load the data returned in trace_controller.rb:
def loader
@group_trace = TblTrace.find_by_sql("select top (1) * from tbl_traces
where short_exchange_id = '" + params[:short_exchange_id] + "'
order by created_on desc")
and display in the div in seach.html.erb here:
<div id="loader_div" name="loader_div">
<% if @group_trace %>
<%= render(@group_trace) %>
<% end %>
</div>
This is telling you that @grouptrace is nil. You dropped the
underscore from inside the name. (Minirant: This is one of the
things I don't like about languages letting you reference undeclared
variables. You can't tell "I deliberately haven't set it yet, so the
fact that it's nil is significant" from a typo.)