我需要帮助处理返回错误生成链接的do块。我知道这是一个简单的解决办法,但我似乎无法弄清楚。
我正在构建维基百科的应用程序克隆,其中有维基,用户和现在的合作者。此克隆用于项目教程,但将协作者实现到视图中的具体步骤让我感到困惑。通过下面发布的代码,我在我的用户#show中获得了当前用户的生成链接。 我真正需要的是当前用户是协作者的wiki列表。
如果需要任何其他代码来帮助我解决问题,请告诉我,并提前感谢您的帮助。
用户显示视图
<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 :(得分:0)
你在粗体文字中说的话和粗体文字前的位似乎与我相矛盾,但是(无法克隆你的代码并使用它)来检索协作者是当前用户的wiki集合,我怀疑你需要的是:
控制器:
@collaborating_wikis = current_user.collaborating_wikis
在你看来:
<% @collaborating_wikis.each do |collaborating_wiki| %>
<%= link_to "Wiki", wiki_path(collaborating_wiki) %>
<% end %>