2016-04-15 104 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 

我完全什麼我需要失去了做,我應該添加什麼東西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

完美謝謝! – leafshinobi25

相關問題