Hello, I’m totally new to RoR but I work with PHP and Java for a
while (7 years)… I’m getting used to Ruby and I’d like to know if
the code below is “right”. It is the “show” page of the Users table…
Email:
<%=h @user.email %>
Password:
<%=h @user.password %>
Role:
<%=h Role.find(@user.role_id).name %> ==========> This
line, is it right? Is there a better way to do it?
<%= link_to ‘Edit’, edit_user_path(@user) %> |
<%= link_to ‘Back’, users_path %>
Thank you!
On Oct 10, 3:56 am, Alan S. [email protected] wrote:
Role:
<%=h Role.find(@user.role_id).name %> ==========> This
line, is it right? Is there a better way to do it?
typically you would have an association between users and roles so
that you could do user.role
Fred
As @Fredrick said, you can do something like
in user.rb
has_many :roles (or has_one :role)
and in role.rb
belongs_to :user
so in your controller you’d call user.role.name (or
user.roles.first.name if you have many roles and want to get the
first).
Alan S. wrote:
Email:
…
Password:
…
Role:
Would probably be better as:
Email:
…
Password:
…
Role:
Long live CSS!
As @Fredrick said, you can do something like
in user.rb
has_many :roles (or has_one :role)
and in role.rb
belongs_to :user
so in your controller you’d call user.role.name (or
user.roles.first.name if
you have many roles and want to get the first).
From what you have I worry if Role.find returns a null object so you’d
get
an exception unless you have validations when you create your objects to
make sure every user has a role. To solve this you can add a “unless”
statement: <%=h Role.find(@user.role_id).name unless
Role.find(@user.role_id).nil? %> which means that it won’t try to get
the
name if it returned a nil so you’d avoid the problem.
On Fri, Oct 10, 2008 at 2:52 AM, Frederick C. <
[email protected]> wrote:
typically you would have an association between users and roles so
that you could do user.role
Fred
–
Youssef Chaker
Software Developer
Open Source Connections
University Of Virginia
Computer Engineering
Class of 2008