Hi all,
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/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
On Wed, Feb 8, 2012 at 2:00 PM, Lekkie Lekkie <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> > listing 3(loader.js.erb) > ------------------------- > [code] > $(''#loader_div'').html("<%=j render(@group_trace)%>"); > [/code] > >Is that a "j" after the = ?? Javier Q. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Well, you go here, right? yourapp.com/search ? Then the @group_trace is nil because it''s not created until you run the loader action. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/ziUGfwYJGUQJ. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Linus Pettersson wrote in post #1044801:> Well, you go here, right? > yourapp.com/search ? > > Then the @group_trace is nil because it''s not created until you run the > loader action.Does this mean the logic of this app is wrong, how else can I do this right? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Javier Quarite wrote in post #1044799:> On Wed, Feb 8, 2012 at 2:00 PM, Lekkie Lekkie <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> > wrote: > >> >> listing 3(loader.js.erb) >> ------------------------- >> [code] >> $(''#loader_div'').html("<%=j render(@group_trace)%>"); >> [/code] >> >> > Is that a "j" after the = ?? > > > Javier Q.Removed but still the same. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
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. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/tN-N4eeOmnQJ. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Linus Pettersson wrote in post #1045014:> 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: <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/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Yes, but the code in the search view is not executed again when the AJAX
request is fired :)
So, you have to do the check in your loader.js.erb and not the search view.
Something like this should work:
<% if @group_trace %>
$(''#loader_div'').html("<%=j
render(@group_trace)%>");
<% end %>
Cheers!
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/ikdirO2VujcJ.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
Linus Pettersson wrote in post #1046510:> Yes, but the code in the search view is not executed again when the AJAX > request is fired :) > > So, you have to do the check in your loader.js.erb and not the search > view. > Something like this should work: > > <% if @group_trace %> > $(''#loader_div'').html("<%=j render(@group_trace)%>"); > <% end %> > > Cheers!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> -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Tue, Feb 14, 2012 at 08:28, Naira Kobo <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> 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 -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.