我正在使用Devise和我的Rails 4.2应用程序,并且我拥有自定义用户控制器,而不是用于导航到用户#show路径中的配置文件页面。问题是,如果我打电话添加自定义属性以设计用户模型
@user.username
它什么也没有返回,值为零。
路线:
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:email, :password,:username) }
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation,:username) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:email, :password, :password_confirmation,:username) }
end
奇怪的是,我已经接种了默认的用户和他们的分贝:
devise_for :users
resources :users, :only => [:show]
我也通过application_controller做出的配置文件进行如下调整有权访问该方法。所以这让我相信这个表格有问题。但是果然,我已经启用了该领域,所以它不像我没有传递值。
色器件/注册/ new.html.erb
<div class="field">
<%= f.label :username %><br />
<%= f.text_field :username, autofocus: true %>
</div>
最后,我通过控制器沿着用户对象传递这样的:
def show
@user = User.find(params[:id])
@posts = @user.posts.last(5)
end
最后一件事,如果我检查用户对象,它显示有一个用户名方法,但值为零。
我已经看过Devise的例子,但仍然没有看到发生了什么。
不,我不设置在模型中。这很奇怪,为什么种子用户有属性,但如果我创建它,则不会。 – user3162553