<%= current_user.role %> 在 Rails 4 中计算结果为空
Posted
技术标签:
【中文标题】<%= current_user.role %> 在 Rails 4 中计算结果为空【英文标题】:<%= current_user.role %> evaluates to nothing in Rails 4 【发布时间】:2015-06-05 18:53:00 【问题描述】:我正在制作一个 Rails 应用程序并试图让用户的角色显示在视图上。我为此使用的代码是:
<%= current_user.role %>
它不会评估任何东西。
我正在使用设计进行用户注册,我的注册视图如下:
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="login-field">
<%= f.email_field :email, :placeholder => "Email" %>
</div>
<div class="login-field">
<%= f.password_field :password, autocomplete: "off", :placeholder => "Password (8 character min)" %>
</div>
<div class="login-field">
<%= f.text_field :firstname, :placeholder => "First Name" %>
</div>
<div class="login-field">
<%= f.text_field :lastname, :placeholder => "Last Name" %>
</div>
<div class="login-field">
<%= f.text_field :phone, :placeholder => "Phone Number" %>
</div>
<%= f.select(:role, ['Role 1', 'Role 2', 'Both']) %>
<br>
<div><%= f.submit "Signup" , :class => "btn btn-success btn-lg" %></div>
<% end %>
<%= render "devise/shared/links" %>
我有一种感觉,我在提交表单时做错了,但无法弄清楚它是什么。任何帮助表示赞赏
【问题讨论】:
【参考方案1】:你可以把它放在create
action
的顶部:
return render text: params.inspect # get what the form sended
和或
return render text: create_params # get what the values you permitted
这样您将获得您发送的数据以及是否符合您的预期。
【讨论】:
【参考方案2】:您应该覆盖设计注册中的sign_up_params
。创建继承自 Devise::RegistrationsController
的 RegistrationsController
后,您可以覆盖 sign_up_params
:
class RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require(:user).permit(:first_name, :last_name, :email, :phone, :role ... any other attributes)
end
end
您还需要更改 routes.rb
以指向新创建的控制器:
devise_for :users, controllers: registrations: 'registrations'
【讨论】:
我按照你说的做了,但它仍然没有产生任何东西。 是否设置了phone
属性?
它似乎唯一的设置电子邮件和密码
尝试调试看看它是否在使用新的控制器。确保您修改了 routes.rb 中的 devise_for
。
我更改了 routes.rb 中的 devise_for。抱歉,我是个 Rails 菜鸟,如何调试以检查我是否使用新控制器?以上是关于<%= current_user.role %> 在 Rails 4 中计算结果为空的主要内容,如果未能解决你的问题,请参考以下文章
X-005 FriendlyARM tiny4412 uboot移植之时钟初始化
X-004 FriendlyARM tiny4412 uboot移植之点亮指路灯