【问题标题】:Devise, Roles and Simple Form设计、角色和简单形式
【发布时间】:2015-04-15 23:04:22
【问题描述】:

我在我的 rails 4 应用程序中使用设计、简单的表单和角色模型。

我有一个设计与用户模型配合使用的用户模型,并且我有一个单独的配置文件模型,其中包含用户将与之交互的所有可编辑功能。

我在我的注册表单中添加了字段,供用户提名他们的角色。角色在配置文件模型中定义。

我的注册表是(最后的输入字段是相关的):

<%= simple_form_for(resource, as: resource_name, :html => {:id => "sign_up_user"}, url: registration_path(resource_name)) do |f| %>

<%= f.error_notification %>

<div class="form-inputs" style="padding-left:20%; text-align:left; color:black;">
  <%= f.input :first_name, placeholder: 'Enter your first name', autofocus: true, required: true, :input_html => {:maxlength => 15, :size => 40} %>
  <%= f.input :last_name, placeholder: 'Enter your surname', autofocus: true, required: true, :input_html => {:maxlength => 15, :size => 40} %>
  <%= f.input :email, placeholder: 'Enter email',  autofocus: true, required: true, :input_html => {:maxlength => 35, :size => 40} %>
  <%= f.input :password, placeholder: 'At least 8 characters', required: true, :input_html => {:maxlength => 15, :size => 40} %>
  <%= f.input :password_confirmation, placeholder: 'Confirm your password',  required: true, :input_html => {:maxlength => 15, :size => 40} %>
  <%= f.input :role do %>
  <%= f.select :role, Role.all.map { |r| [r.name, r.id] }, include_blank: true %>
  <% end %>
</div>

在我的个人资料模型(属于用户)中,我的角色定义为:

roles :admin, :manager, :student, :educator, :guest

我的用户表中还有一个字段供用户选择registration_role。我希望用户能够从角色注册表中的配置文件模型中定义的角色列表中进行选择(我认为 RoleModel 允许这样做)。

有谁知道如何在注册表单中包含一个具有角色列表(在配置文件模型中定义)的段,以便随后可以将选择存储为用户表中的“registration_role”?

谢谢

【问题讨论】:

标签: ruby-on-rails devise simple-form user-roles


【解决方案1】:

您可能想要使用嵌套属性(在您的用户表中添加一个 role_id)

<%= f.select(:role_id, Role.all.map {|r| [r.zip_code,r.id]})%>

然后只需调用 user.role 即可获取您需要的信息

【讨论】:

    猜你喜欢
    • 2015-11-04
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多