2016-04-25 76 views
0

我需要一些幫助,使用do阻止返回錯誤的生成鏈接。我知道這是一個簡單的修復,但我似乎無法弄清楚,因爲我對於我這麼裸露的rails非常陌生。Rails阻止返回用戶而不是合作伙伴

我正在構建維基百科的應用程序克隆,其中有wiki,用戶和現在的合作者。這個克隆是用於項目教程的,但在視圖中實現協作者的具體步驟讓我感到困惑。通過下面的代碼,我得到了當前用戶的用戶#show上生成的鏈接。 我真正需要的是當前用戶是協作者的維基列表。

讓我知道是否需要其他代碼來幫助解決此問題,並提前感謝您的幫助。

用戶顯示視圖

<div class="col-sm-4"> 
     <div class="col-md-4"> 
     <% @collaborator.each do |collaborator| %> 
     <div class="row"> 
      <ul> 
      <li><%= link_to collaborator %></li> 
      </ul> 
     </div> 
     <% end %> 
     </div> 
    </div> 

用戶控制器

def show 
    @user = User.find(params[:id]) 
    @wikis = @user.wikis 
    @wiki = Wiki.find(params[:id]) 
    @collaborators = Collaborator.all 
    @collaborator = @wiki.collaborators.find_by(:user_id => current_user.id) 
end 

用戶模型

class User < ActiveRecord::Base 
    has_many :wikis 
    has_many :collaborators 
    has_many :collaborating_wikis, through: :collaborators, foreign_key: "wiki_id", class_name: "Wiki" 
    validates :wiki_id, presence: true 
end 

wiki模式

class Wiki < ActiveRecord::Base 
    belongs_to :user 
    has_many :collaborators 
    has_many :users, through: :collaborators 
    validates :user_id, presence: true 
end 

合作者型號

class Collaborator < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :wiki 
    validates :wiki_id, :user_id, presence: true 
    validates :wiki_id, uniqueness: { scope: [:wiki_id, :user_id] } 
end 
+0

嗨塔克,這將是有一個鏈接到GitHub庫真正有用的,所以我可以克隆下來回購,並有一齣戲。 – Andy

+0

你上面的代碼在'@ collaborator'上執行'each'循環,而不是'@ collaborators'。 –

回答

0

什麼您在大膽的文字說和粗體字前位看起來是矛盾的我,但(沒有能夠克隆了你代碼和玩它)檢索合作者是當前用戶的維基集合,我懷疑你需要什麼是:

控制器:
@collaborating_wikis = current_user.collaborating_wikis

而在你的看法:

​​
+0

感謝Andy,我添加了您提供的代碼,並且收到以下錯誤消息:'無法在模型協作者中找到源協會(s)「collaborating_wiki」或:collaborating_wikis。嘗試'has_many:collaboration_wikis,:through =>:協作者,:來源=>'。它是用戶還是wiki?'。我的用戶模型中有'has_many'關聯,所以我很困惑爲什麼現在要做到這一點。這裏是github回購,以防萬一:https://github.com/tuckermullen/blocipedia並且非常感謝幫助btw! – Tucker

+0

哪個分支?我克隆了主人,但Collaborator模型不在那裏。順便問一下你的測試是否適合你? – Andy

+0

對不起,忘了提及......這是合作者分支。 – Tucker

相關問題