Test if record exists in joined table

in my layout i wanna test if the user has a profile so when he clicks
profile my app know whether to present him with a show + link to edit
the
exisiting profile, or just a form for new profile ~ thanks

On 27 December 2015 at 20:04, fugee ohu [email protected] wrote:

in my layout i wanna test if the user has a profile so when he clicks
profile my app know whether to present him with a show + link to edit the
exisiting profile, or just a form for new profile ~ thanks

How do you access the user’s profile? If it is @user.profile (or
something similar) then @user.profile.nil? should do it.

Colin

yikes, i dunno how @user got instantiated, i forgot to say i’m in a
view, i
dunno if i’m allowed to do this in a view or not: <% if
Profile.find_by_user_id(current_user.id) %>

On 27 December 2015 at 21:07, fugee ohu [email protected] wrote:

yikes, i dunno how @user got instantiated, i forgot to say i’m in a view, i
dunno if i’m allowed to do this in a view or not: <% if
Profile.find_by_user_id(current_user.id) %>

You can do anything you like in a view, but what is wrong with
<% if current_user.profile.nil? %>

How many times do I have to ask you not to top post?

Colin

On Sunday, December 27, 2015 at 4:15:57 PM UTC-5, Colin L. wrote:

the
Groups

<javascript:>.

To view this discussion on the web visit

https://groups.google.com/d/msgid/rubyonrails-talk/a9e1d87d-c329-427a-bb50-ae2fe2ae8d70%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Sorry Colin, It’s the goolge default When you click reply the cursor
flashes on a blank line with quoting below, that’s why i always forget
but
I’ll try to remember from now on Do I have to test for nil like that I’d
rather use find or find_by more absolutely ~ thanks (merry christmas)

On 27 December 2015 at 21:24, fugee ohu [email protected] wrote:

How many times do I have to ask you not to top post?

Sorry Colin, It’s the goolge default When you click reply the cursor flashes
on a blank line with quoting below, that’s why i always forget but I’ll try
to remember from now on Do I have to test for nil like that I’d rather use
find or find_by more absolutely ~ thanks (merry christmas)

It is not a matter of how you test for nil, it is a matter of how you
access the profile. You suggest using
Profile.find_by_user_id(current_user.id) but you can just do
current_user.profile. It is the same thing but much easier to
understand. You can test for nil any way you like.

Colin

On Sunday, December 27, 2015 at 4:35:37 PM UTC-5, Colin L. wrote:

use

find or find_by more absolutely ~ thanks (merry christmas)

It is not a matter of how you test for nil, it is a matter of how you
access the profile. You suggest using
Profile.find_by_user_id(current_user.id) but you can just do
current_user.profile. It is the same thing but much easier to
understand. You can test for nil any way you like.

Colin

Thanks colin, happy holidays again ha ha Ok so then i’m using if current_user.profile? but the snippet is causing the error
application.html.erb:59: syntax error, unexpected keyword_ensure,
expecting
end-of-input, even though application.html.erb is only 57 lines

<% user_signed_in? %>
<% if current_user.profile? %>
<%= “profile found” %>
<% else %>
<%= “profile not found” %>
<% end %>

<%= current_user.email %>
  • <%= link_to('Profile', user_profile_path ) %>
  • Account
  • Messages
  • <%= link_to('Sign out', destroy_user_session_path, method: :delete) %>
<% else %>
<%= link_to('User sign in', new_user_session_path) %>
<% end %>

On 27 December 2015 at 21:53, fugee ohu [email protected] wrote:

use

<% end %>

<% else %>
<%= link_to('User sign in', new_user_session_path) %>
<% end %>

There is no matching ‘if’ for this ‘end’.

Colin

what does this mean without the if <% user_signed_in? %>

On 27 December 2015 at 22:38, fugee ohu [email protected] wrote:

what does this mean without the if <% user_signed_in? %>

It is just a statement that evaluates to true or false and does
nothing with the result.

Colin

thanks