>> 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.

Reply via email to