Я пытаюсь сделать параметр профиля редактирования для своего пользователя. Один из параметров, которые я передаю в форму «: name», не будет работать - где я могу определить: имя, чтобы моя форма могла взять его и обновить пользователя? "NoMethodError в/пользователей/3/редактировать неопределенный метод` имя»для #"Неопределенная ошибка метода для формы профиля профиля? (Ruby on Rails)
Мои пользователи Контроллер:
class UsersController < ApplicationController
skip_before_filter :require_login, only: [:new, :create]
def new
@user = User.new
end
def edit
@user = User.find(params[:id])
end
def create
@user = User.new(user_params)
if @user.save
redirect_to root_url, :notice => "Signed up!"
else
render :new
end
end
def show
@user = User.find(params[:id])
if current_user
@comment = @user.comments.build
end
end
private
def user_params
params.require(:user).permit(:email, :password, :password_confirmation, :handle, :avatar)
end
end
пользователя Модель:
class User < ActiveRecord::Base
authenticates_with_sorcery!
validates :email, :handle, :name, uniqueness: true, presence: true
validates :password, confirmation: true
validates :password_confirmation, presence: true
has_many :game_players, foreign_key: :player_id
has_many :games, through: :game_players
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/
def total_wins
self.games.where.not(winner_id: nil).where(winner_id: self.id).count
end
def total_games
self.games.where.not(winner_id: nil).count
end
def total_losses
total_games - total_wins
end
def win_rate
total_games != 0 ? total_wins/total_games.to_f : 0
end
end
Форма:
= form_for @user do |f|
.field
= f.label :name
= f.text_field :name
.field
= f.label :email
= f.text_field :email
.field
= f.label :gender
= f.password_field :gender
.field
= f.label :location
= f.password_field :location
.field
= f.label :bio
%br/
= f.password_field :bio
= f.file_field :avatar
%br/
= f.submit "Update"
Обратите внимание: у меня нет отдельной модели/контроллера профиля - я я используя пользовательское/редактируемое представление под моделью пользователя.
Я попытался добавить: имя к схеме, и это не сработало. Как вы можете видеть, я новичок в этом, и ваша помощь будет очень признательна! Спасибо!
У вас есть поле 'name' в вашей таблице базы данных' users'? – twonegatives
в схеме? Я поставил t.string «имя» и все равно не работает. У меня нет редактирования/создания миграции пользователя, я использовал колдовство. Должен ли я добавить: имя в файл колдовства или что-то еще? – icecreamrabbit