Forum: Ruby on Rails Dynamic select box

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Guillaume L. (Guest)
on 2009-02-18 00:52
Hi everyone,

I have a problem. I want to display a different select box wether the
current user is an admin or an user.

So I thought I could do this in my view where my form is displayed :

  <p class="form-input">
    <%= f.label(:role_id, 'Role:') %>
  <%
  if (current_user.admin?)
  then collection_select(:user, :role_id, Role.find(:all, :order =>
"name desc"), :id, :name)
  else # Here I would code an another collection_select
  end
  %>
  </p>



But It doesn't work. Nothing is displayed!
Could you help me?

Thanks!
Rob B. (Guest)
on 2009-02-18 01:08
(Received via mailing list)
On Feb 17, 2009, at 5:52 PM, Guillaume L. wrote:

>  <%
<%=
   ^
  if you want output, you generally need <%= (if you get to the point
that you know to generate output from <% %>, then you will KNOW when
to use them)

-Rob
Guillaume L. (Guest)
on 2009-02-18 01:32
Rob B. wrote:
> On Feb 17, 2009, at 5:52 PM, Guillaume L. wrote:
>
>>  <%
> <%=
>    ^
>   if you want output, you generally need <%= (if you get to the point
> that you know to generate output from <% %>, then you will KNOW when
> to use them)
>
> -Rob



I did this :

<% if(current_user.admin?) then %>
<%= collection_select(:user, :role_id, Role.find(:all, :order => "name
desc"), :id, :name) %>
<% end %>

And now it displays something. Thx!
pepe (Guest)
on 2009-02-19 07:00
(Received via mailing list)
I would do 2 things to try to fix your problem if I were you:

1. Make sure you know the type of user you have when you get the
request for the page
2. Put the logic of generating the data in the controller, then use an
instance variable to display the values and forget the 'if then else'
logic in the view. Your view will be much easier to read and modify.

My guess is that the problem you have is that you don't have a
current_user type value (or not the one you believe you have) by the
time your code runs.

Pepe

On Feb 17, 5:52 pm, Guillaume L. <rails-mailing-l...@andreas-
This topic is locked and can not be replied to.