Ich habe versucht, das richtig zu machen, und nach Stunden bin ich endlich verloren. Ich versuche ein Profil für einen Benutzer zu erstellen. Ich habe das Profilmodell und das Benutzermodell aufgrund der Attribute und der Arten von Benutzern, die ich habe, getrennt. Der Benutzer hat eine has_one-Beziehung zum Profil. Mein Problem scheint zu sein, dass ich nicht nur mit den Routen, sondern auch mit dem Controller des Profils verwirrt bin. Ich möchte einfach einen link_to haben, um ein Benutzerprofil zu zeigen. Aber auf den CodeBenutzerprofil anzeigen
user.rb
has_one :profile
after_create :create_profile
def create_profile
self.profile.create(:name => self.user_name)
end
Profil Modell
profile.rb
belongs_to :user, required: true, autosave: true
Routen für Profil
resources :profile
Profil Controller
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
ich völlig verloren bin auf das, was ich brauche, um Soll ich etwas zu th hinzufügen? Der Controller des Benutzers wegen der after_create Methode? sollte meine Ressourcen: Profil unter Ressourcen sein: Benutzer?
Der Fehler ich erhalte, wenn ich versuche, ist ein Benutzerprofil zu sehen Couldn't find Profile with 'id'=
die link_to Methode ich benutze ist <%= link_to "View Profile", profiles_show_path(@user) %>
Bitte lassen Sie mich etwas wissen, die von Hilfe Sie für Ihre Zeit sein könnte danken und Hilfe. Ich möchte nicht nur die "Show" eines Benutzers als Profil anzeigen, da die verschiedenen Arten von Benutzern und die Art und Weise, wie ich die Profile modelliere, aussehen.
ich für die Code-Qualität in der Frage nach wie vor ein nuub – leafshinobi25
Basierend auf Ihren Routen entschuldigen (vorausgesetzt, es ist eigentlich 'Ressourcen: profiles') sollten Sie' link_to „Profil ansehen ", profil_path (@ user.profile)' –
<% = link_to "Profil ansehen", @ user.profile%> –