2016-04-15 9 views
0

Я пытался это сделать правильно, и послезавтра я, наконец, просто потерялся. Я пытаюсь создать профиль для пользователя. Я разделил модель профиля и модель пользователя из-за атрибутов и типов пользователей, которые у меня есть. Пользователь имеет отношение 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) %>

Пожалуйста, дайте мне знать ничего, что могло бы помочь поблагодарить вас за ваше время и помощь. снова я не хочу просто показывать «шоу» пользователя как профиль из-за разных типов пользователей и того, как я планирую моделировать профили.

+0

Я извиняюсь за качество кода в вопросе по-прежнему nuub – leafshinobi25

+0

Исходя из ваших маршрутов (при условии, что это на самом деле 'ресурсы: profiles') вы должны иметь' link_to «Просмотр профиля ", profile_path (@ user.profile)' –

+1

<% = link_to "Просмотр профиля", @ user.profile%> –

ответ

0

Используйте следующий код:

<%= link_to "View Profile", @user.profile %> 
+0

Perfect Спасибо! – leafshinobi25