>> forgot to engage brain The happens to me all the time. I retired a decade ago and I often can't remember what I did or intended five minutes ago. I've developed some techniques for combating this weakness, e.g.. when programming I log screen-shots of what I did and what I got as a result. It has a two-fold benefit: (1) if something goes awry, I can accurately recall what led up to the problem; and (2) if I can't remember how to do something I "know" how to do, I can search my log mechanically to get a clue.
Cheers, Richard On Apr 25, 3:45 am, Colin Law <[email protected]> wrote: > On 24 April 2010 22:53, RichardOnRails > > <[email protected]> wrote: > > Hi Colin, > > > I had to work on adding authenticated users to my app, so I had to > > back-burner the conditional-link issue. I nevertheless would like to > > keep trying to learn how to do this. Maybe CSS is the way to make the > > link switch between visible or not depending on context. (Just my > > inspiration at the moment.) > > > Also, you mentioned that I needed have my switch initialized to > > false, because nil will result in the same thing, so I just > > commented it out in VendorController. Seems to clear up one problem. > > >> Your first attempt just above is already a class variable, as it > >> starts with @ so I don't follow you here. > > Yes you are right of course, forgot to engage brain. There is no need > for a class variable, an instance variable is what you want. > > Colin > > > > > > > I think @xxx defines an instance variables while @@xxx defines a class > > variable in Ruby. That's what my Ruby books tell me, as does > >http://www.rubyist.net/~slagell/ruby/instancevars.html. > > > It's nice that we got a couple of other respondents. Maybe we'll get > > this resolved shortly. > > > Best wishes, > > Richard > > > On Apr 20, 1:11 pm, Colin Law <[email protected]> wrote: > >> On 20 April 2010 16:03, RichardOnRails > > >> <[email protected]> wrote: > >> > Hi Colin, > > >> >>> The following in app\views\vendors\show.html.erb works perfectly > >> >>> <%= link_to 'New Expense', '/expenses/new' %> > > >> >>> I have the following in app\controllers\vendors_controller.rb > >> >>> class VendorsController < ApplicationController > >> >>> @show_new_expense_page = true > >> >>> [snip[ > > >> >>> I now have in app\views\vendors\show.html.erb > >> >>> <%= link_to 'New Expense', '/expenses/new' if @show_new_expense_page %> > >> >>> The foregoing link fails to be displayed > > >> >> I guess in this case that @showExpenseNew is not actually true as you > >> >> think it is. > >> > You are so right!! It is nil > > >> >> look athttp://guides.rubyonrails.org/ > >> > Excellent guidance; it's excellent > > >> >> My favorite is to use ruby-debug > >> > I did that. It took me days to get working. I won't bore you with my > >> > travails. But knew I needed to be able to debug but I didn't want to > >> > detour from getting version 1 of my app completed. But your > >> > suggestion persuaded me otherwise. > > >> > My goal is to have a variable that is persistent and which: > >> > 1. Is defined somewhere and initialized to false > > >> You don't need to define it and set it to false, the code > >> if variable > >> is ok to use if variable is not defined - that is the same as false. > >> So you only need to set it to true where you want it true. > > >> > 2. Is set to true in app\views\expenses\new.html.erb when the <%= > >> > link_to 'New Vendor' ... is clicked > > >> Sounds good > > >> > 3. Is referenced in app\views\vendors\show.html.erb as a condition for > >> > whether to display some link > > >> Also sounds good > > >> > My current guess is to use a session variable, which I've got a lot > >> > of hope for. If that doesn't work, I'll start a new thread. > > >> There should not be any need for a session variable, just set it in > >> the controller and test it in the view. > > >> > Best wishes, > >> > Richard > > >> > BTW, some of my failures are: > >> > My first attempt to see whether a shared value would work with > >> > @show_new_expense_page = true in app\controllers > >> > \vendors_controller.rb > >> > failed in app\views\vendors\show.html.erb > >> > because @show_new_expense_page was nil, > > >> Why is it nil if you are setting in in the controller? Are you sure > >> it is executing that line in the controller. Break there with > >> ruby-debug and check. > > >> > which ruby_debug demonstated for me, thanks to you. > > >> > My second attempt changed to a class variable @show_new_expense_page > >> > in both places, which resulted in a syntax error. > > >> Your first attempt just above is already a class variable, as it > >> starts with @ so I don't follow you here. > > >> > My third attemp was to initialize @show_new_expense_page in > >> > app\controllers\application_controller.rb > > >> No need for it in application_controller, only things that all > >> controllers need go here. > > >> Colin > > >> > which led to NameError in Vendors#show > >> > uninitialized class variable @@show_new_expense_page in > >> > ActionView::Base::CompiledTemplates > > >> -- > >> 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 [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]. > >> For more options, visit this group > >> athttp://groups.google.com/group/rubyonrails-talk?hl=en. > > > -- > > 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 [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/rubyonrails-talk?hl=en. > > -- > 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 [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/rubyonrails-talk?hl=en. -- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

