iThome online | iThome Blog | iThome周刊訂閱

載入中...

twtw

IT邦初學者
9級

[RoR] 小小複雜模仿 del.icio.us 的個人化的社會標籤 per user tagging (續)

接續 上一篇 [RoR] 小小複雜模仿 del.icio.us 的個人化的社會標籤 per user tagging 來分享 使用者增減標籤界面的簡單做法。



收到書籤:發佈到twitter      
分享時間:2008-10-13 05:47:18

▼ ADVERTISEMENT ▼

分享內容(
9

使用者增減標籤的界面
在 app/controllers/bibles_controller.rb 加入

include AuthenticatedSystem
before_filter :login_required, :only => [ :new, :create, :edit, :update, :destroy ]

才不會讓全世界的人都作這些動作,而像 new, create, destroy 這三個項目,就將其 action 拿掉,或者變成只秀出禁止動作的字樣。

只讓已登入的使用者才可看到 編輯標籤 的連結:
# 在 app/views/bibles/show.html.erb 適當位置加入:
<% if is_logged_in? %>
  <%= link_to '編輯標籤', edit_bible_path(@bible) %>
<% end %>



在 app/views/bibles/edit.html.erb 主要把該經文中已有該 user 曾加入的 標籤 取出來放到 form 裡供增減
<h1>編輯標籤</h1>
<%= error_messages_for :bible %>
<% form_for(@bible) do |f| %>
  <p>
    <%= @bible.chinesef -%><%= @bible.chap -%>:<%= @bible.sec -%><br />
    <%= @bible.txt %>
  </p>
<p>
標籤:
<% darray = []
Tag.userid_itemid(current_user.id, @bible.id,'Bible').each do |t| darray.push(t.name)
end %>
<%= text_field_tag 'tag', darray.join(' ') %>
</p>
  <p>
    <%= f.submit "更新標籤", :name => nil -%>
  </p>
<% end %>
<%= link_to '回本節經文', @bible %> |
<%= link_to '回聖經首頁', bibles_path %>



而更新部份的 action,只要去更新 標籤 的欄位,其他部份不去更新即可。
  def update
    @bible = Bible.find(params[:id])
    respond_to do |format|
#只要改成這一行:
      if @bible.tag(params[:tag].split(' ').join(','),current_user.id)
        flash[:notice] = '已更新標籤'
        format.html { redirect_to(@bible) }
...


社會標籤的應用
透過以上的介紹,Social Tagging 的基本機制便可實作出來,運作的範例 demo 在: http://alpha.tagbible.net/bibles 。目前在網路上看到的標籤,許多只是 該文章的作者,為自己的文章下標籤,只算是個人標籤,只對自己較有意義,但別人不能去加,最多是透過 del.icio.us 之類的第三方書籤網站,來對該文去定義自己覺得可以代表的標籤。

透過本文的作法,等於是可以讓自己的網站與 del.icio.us 有同樣的功能,讓使用者在自己站註冊,去對自己網站所提供的資料來下標籤,本文的例子是用聖經經文,就可以把對自己對某節經文可以有什麼屬性來作書籤,在這樣彼此相連結的作法下,就更容易把一個概念,串連出一堆自己原來沒有注意到的經文出來。

同樣地,所要標籤的對象,可以把 聖經經文,置換成像:
新聞、雜誌內容:通常只有透過基本類別、全文檢索的方式,且又排序到很後面,才能指到古早文章,若有不同人去標籤,就更能提高使用率。
圖書館的書目資料:透過各讀者對書所下的標籤,可把相關的讀者及其所關注的標籤議題,及相關的書關連起來。
書店的書目資料:同上。
電影資料:通常網路上看到的電影資料庫,都只有單純的單一分類,若可讓使用者加標籤,就可從不同的相關字眼,都指到同一步電影名稱。

基本上,只要是會累積成大量的資料,若能加上 Social Tagging 的機制,能補上全文檢索的不足,而可以透過使用者的 定義、意義、標籤、關鍵字、代表字眼 不同詮釋來連結到該資料。而更有趣的是,也可以透過 標籤 來做到像 http://www.blogger.com/profile/4 興趣、喜好…給串起來。

在這個 Web 2.0 的環境中,只能說 RoR 是一個使 Web 2.0 的功能可以垂手可得的方便工具,比起其他的程式環境是相當簡單地達成任務。

參考資料:http://ianli.com/site/HowTo/RailsStarter-BeTaggable

[RoR] 小小複雜模仿 del.icio.us 的個人化的社會標籤 per user tagging (續)

目前沒有資料

回應

請填寫您的回應,長度限為1,000個字,回應不計點數,也不限使用次數



 

檢舉違規

違規事項:

*補充檢舉理由(可省略),字數不可超過100字

推薦

推薦理由:


*給回答者的鼓勵(可不填),字數不可超過100字

▼ ADVERTISEMENT ▼

熱門標籤

 ccna代考   cisco   crystal   exchange   iscsi   it   java   javascript   linux   m-power   mail   msnlib   msnp15   msnsdk   msn機器人   mysql   nas   oracle   outlook   pmi   pmp   report   sap   server   smartquery   sql   vista   vpn   web   windows   xp   二三事   倍力   倍力資訊   免費軟體   國際專案管理師   報表   專案管理   有話大聲說   活動   省錢   網路   網路儲存   網路管理   網頁設計   資安   資訊安全   防毒軟體   2003   2008