registrations_controller中是否缺少create方法或bug是什么?

时间:2016-09-21 23:29:12

标签: ruby-on-rails

我收到错误:

RegistrationsController中的NoMethodError #create

的未定义方法avatar_content_type

当我尝试注册新用户时。

这是我的app / controllers / registrations_controller.rb:

class RegistrationsController < Devise::RegistrationsController

  private

  def sign_up_params
    params.require(:user).permit(:email, :password, :password_confirmation, :username, :firstname, :lastname, :image, :url)
  end

  def account_update_params
    params.require(:user).permit(:email, :password, :password_confirmation, :current_password, :username, :firstname, :lastname, :image, :url)
  end
end

User.rb看起来像这样:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  validates_uniqueness_of :username

  has_many :articles
  has_many :comments

  has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }
  #, default_url: "/images/:style/missing.png"
  validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\z/

end

应用程序/视图/注册/ edit.html.erb:

<h2>Edit <%= resource_name.to_s.humanize %></h2>

<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.input :username, required: true, autofocus: false, label: false, placeholder: "Set Your UserName" %>
    <%= f.input :email, required: true, autofocus: true, label: "Your Email Goes Here..." %>
    <%= f.input :firstname, required: false, autofocus: false %>
    <%= f.input :lastname, required: false %>

    <%= f.input :image, as: :file %>
    <%= image_tag @user.image.url(:thumb), class: "img-circle" %>

    <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
      <p>Currently waiting confirmation for: <%= resource.unconfirmed_email %></p>
    <% end %>
    <%= f.input :current_password, hint: "we need your current password to confirm your changes", required: true %>
    <%= f.input :password, autocomplete: "off", hint: "leave it blank if you don't want to change it", required: false %>
    <%= f.input :password_confirmation, required: false %>

  </div>

  <div class="form-actions">
    <%= f.button :submit, "Update" %>
  </div>
<% end %>

<h3>Cancel my account</h3>

<p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete %></p>

<%= link_to "Back", :back %>

0 个答案:

没有答案