2012-06-21 31 views
2

所以我有這個應用程序,我使用HABTM協會來確定「用戶技能」;當創建一個新用戶(通過新用戶視圖),用戶可以通過與形式的這一觀點提供一組HABTM複選框的聲明他/她的技能...基於HABTM的Rails視圖類別

我想要做什麼是根據不同的技能有一個鏈接,例如:「警察」,「醫生」,「音樂家」等。這些鏈接應指向其他觀點,我可以向訪客展示只有屬於他們點擊的特定類別的用戶

用戶/技能模型(協會部分)是這樣的:

#User Model 

class User < ActiveRecord::Base 
has_and_belongs_to_many :skills 

#Skill Model 

class Skill < ActiveRecord::Base 
    has_and_belongs_to_many :users 

而且(如果它是有幫助的)我HABTM複選框看起來像這樣:

<p> What Skills do you have? 

<% for skill in Skill.find(:all) %> 
<div> 
    <%= check_box_tag "user[skill_ids][]", skill.id, @user.skills.include?(skill) %> 
    <%= skill.name %> 
</div> 
<% end %> 
</p> 

比方說技能我們有:「警察,醫生,音樂家」,例如...我怎樣才能創建鏈接在一個視圖指向具有X技能的用戶組,然後用什麼代碼可以渲染一些視圖,只顯示列表屬於X的用戶技能類別?

我敢打賭,解決方案非常簡單...但我錯過了一些明顯的東西,也許。你能指出我正確的方向嗎?

謝謝!

回答

6

的config/routes.rb中

resources :skills 

生成SkillsController與rails g controller skills和放在那裏:

def index 
    @skills = Skill.all 
end 

def show 
    @skill = Skill.find(params[:id]) 
end 

然後您的看法:

#app/views/skills/index.html.erb 
<ul> 
    <% @skills.each do |skill| %> 
    <li><%= link_to skill.name, skill_path(skill) %></li> 
    <% end %> 
</ul> 

#app/views/skills/show.html.erb 
<h1>Users who have the <%= @skill.name %> skill</h1> 
<ul> 
    <% @skill.users.each do |user| %> 
    <li><%= user.full_name %></li> 
    <% end %> 
</ul> 
+0

#Awesome!那正是我在尋找的東西:D很多,非常感謝! – Jmlevick