I am quite new to Rails.
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.
See listings below to see code snippet:
listing 1(search.html.erb)
--------------------------
[code]
<div class="row">
<div class="four columns">
<nav>
<ul class="list group">
<% @tbl_unique_traces.each do |tbl_trace| %>
<li>
<a data-remote="true" href="<%= trace_loader_url (tbl_trace)
%>?short_exchange_id=<%= tbl_trace.short_exchange_id %>">
<h6>
<%= tbl_trace.short_exchange_id %>
</h6>
<%= tbl_trace.short_exchange_id %></a></li>
</li>
<% end %>
</ul>
</nav>
</div>
<div id="loader_div" name="loader_div">
<% if @group_trace %>
<%= render(@group_trace) %>
<% end %>
</div>
</div>
[/code]
listing 2(trace_controller.rb)
------------------------------
[code]
def search
@tbl_unique_traces = TblTrace.find_by_sql("select top.....)
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @tbl_unique_traces }
end
end
def loader
@group_trace = TblTrace.find_by_sql("select ........)
respond_to do |format|
format.html # loader.html.erb
format.js
format.json { render :json => @group_trace }
end
end
[/code]
listing 3(loader.js.erb)
-------------------------
[code]
$('#loader_div').html("<%=j render(@group_trace)%>");
[/code]
listing 4 (_group_trace.html.erb)
--------------------------------
[code]
<div class="eight columns">
<dl id="accordion" class="list-accordion">
<dt><span></span>view one</dt>
<dd>
<p>Data here</p>
</dd>
</dl>
</div>
[/code]
The problem is that, this codeline never get executed:
<% if @group_trace %>
<%= render(@group_trace) %>
<% end %>
And I can confirm that @group_trace has data in the trace_controller.
What can be the problem? Please help out.
Regards.
--
Posted via http://www.ruby-forum.com/.
listing 3(loader.js.erb)
-------------------------
[code]
$('#loader_div').html("<%=j render(@group_trace)%>");
[/code]
Does this mean the logic of this app is wrong, how else can I do this
right?
Removed but still the same.
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:
<a data-remote="true" href="<%= trace_loader_url (tbl_trace)
%>?short_exchange_id=<%= tbl_trace.short_exchange_id %>">
<h6>
<%= tbl_trace.short_exchange_id %>
</h6>
<%= tbl_trace.short_exchange_id %></a>
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>
--
Posted via http://www.ruby-forum.com/.
I tried this but I get this error
Extracted source (around line #19):
undefined method `model_name' for NilClass:Class
18: <div id="loader_div" name="loader_div">
19: <%= render(@grouptrace) %>
20: </div>
> Extracted source (around line #19):
>
> undefined method `model_name' for NilClass:Class
>
> 18: <div id="loader_div" name="loader_div">
> 19: <%= render(@grouptrace) %>
> 20: </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.)
-Dave
--
Dave Aronson: Available Cleared Ruby on Rails Freelancer
(NoVa/DC/Remote) -- see www.DaveAronson.com, and blogs at
www.Codosaur.us, www.Dare2XL.com, www.RecruitingRants.com