Я пытался это сделать правильно, и послезавтра я, наконец, просто потерялся. Я пытаюсь создать профиль для пользователя. Я разделил модель профиля и модель пользователя из-за атрибутов и типов пользователей, которые у меня есть. Пользователь имеет отношение has_one к профилю. Моя проблема, похоже, меня путают не только с маршрутами, но и с контроллером профиля. Я просто хочу иметь ссылку link_to, чтобы показать профиль пользователя. Но по кодуПоказаны данные пользователя
user.rb
has_one :profile
after_create :create_profile
def create_profile
self.profile.create(:name => self.user_name)
end
Профиль модели
profile.rb
belongs_to :user, required: true, autosave: true
маршруты для профиля
resources :profile
контроллер профиль
class ProfilesController < ApplicationController
before_action :owned_profile, only: [:edit]
before_action :get_profile
layout "profile"
respond_to :html, :js
def show
@activities = PublicActivity::Activity.where(owner:@user).order(created_at: :desc).paginate(page: params[:page], per_page: 10)
end
def followers
@followers = @user.user_followers.paginate(page: params[:page])
end
def edit
end
def update
if @profile.update(profile_params)
flash[:notices] = ["Your profile was successfully updated"]
render 'show'
else
flash[:notices] = ["Your profile could not be updated"]
render 'edit'
end
end
private
def profile_params
params.require(:profile).permit(:name, :cover)
end
def owned_profile
unless current_user == @user
flash[:alert] = "That profile doesn't belong to you!"
redirect_to root_path
end
end
def get_profile
@profile = Profile.find(params[:id])
end
end
Я совершенно потерял от того, что мне нужно do, я должен добавить что-то к th e пользовательский контроллер из-за метода after_create? должны ли мои ресурсы: профиль находиться под ресурсами: пользователь?
Я получаю ошибку, когда я пытаюсь просмотреть профиль пользователя Couldn't find Profile with 'id'=
метод link_to я использую <%= link_to "View Profile", profiles_show_path(@user) %>
Пожалуйста, дайте мне знать ничего, что могло бы помочь поблагодарить вас за ваше время и помощь. снова я не хочу просто показывать «шоу» пользователя как профиль из-за разных типов пользователей и того, как я планирую моделировать профили.
Я извиняюсь за качество кода в вопросе по-прежнему nuub – leafshinobi25
Исходя из ваших маршрутов (при условии, что это на самом деле 'ресурсы: profiles') вы должны иметь' link_to «Просмотр профиля ", profile_path (@ user.profile)' –
<% = link_to "Просмотр профиля", @ user.profile%> –