我有一个问题,因为我是Ruby on Rails的新手。我正在使用form_for
提交一些值。我通过隐藏字段传递值作为登录用户的角色。用户依赖于其角色。如果role是client,则将用户重定向到客户端页面,如果role是admin,则user将重定向到admin页面。我通过隐藏字段分配角色如下:
现在我想删除隐藏字段,并希望通过单选按钮分配角色。请帮助我如何通过单选按钮传递角色。我将非常感谢你的帮助。
答案 0 :(得分:0)
如果我理解正确,你需要这样的东西:
<%= f.radio_button :role, 'user', checked: true %>
<%= label :role_user, 'User' %>
<%= f.radio_button :role, 'client' %>
<%= label :role_client, 'Client' %>
<%= f.radio_button :role, 'admin' %>
<%= label :role_admin, 'Admin' %>
答案 1 :(得分:0)
假设您的@roles
是一个数组:
@roles = ['client', 'admin']
然后在View中你可以做到:
<% @roles.each do |role| %>
<%= f.label :role, role.humanize, :value => role %>
<%= f.radio_button :role, role %>
<% end %>
在您的控制器中:
before_filter :check_role
def check_role
if params[:user][:role] == 'client'
redirect_to client_path
elsif [:user][:role] == 'admin'
redirect_to admin_path
end
end
使用正确的params[:user][:role]
键更改params
以访问响应中传递的值。另外,使用您在应用程序中拥有的实际路由助手更改client_path
和admin_path
。