2009-11-30 89 views
0

我有一個消息控制器宣佈爲我的路線資源。幫助與鐵軌休息標準

我希望能夠獲得收到消息的列表視圖 和發送消息的不同視圖。

但我不想打破休息模式......你們推薦什麼?

回答

4
的config/routes.rb中

def received 
    @messages = Message.to(current_user) 
end 

def sent 
    @messages = Message.from(current_user) 
end 

在你message.rb定義這兩個命名範圍的方法。

或者託尼Fontenot指出:

def received 
    @messages = current_user.messages.to 
end 

def sent 
    @messages = current_user.messages.from 
end 
+0

做@messages = current_user.messages.to'和'@messages = current_user.messages.from'不是更好嗎? – 2009-12-01 16:00:33

+0

是的,你是對的。 – 2009-12-01 22:17:35

0

保持簡單

/messages?view=sent

在你index方法



def index 
    @messages = case params[:view] 
    when 'sent' 
     Messages.sent 
    when 'received' 
     Messages.received 
    else 
     Messages.all 
    end 
end 

inherited_resources插件如何處理作用域。

map.resources :messages, :collection => { :sent => :get, :received => :get } 

然後在你的messages_controller.rb

+0

由誰來發?收到誰?不完整的答案伊莫。提問者還要求它遵守RESTful慣例。這不是。該模型也可能被稱爲「消息」。 – 2009-12-01 08:06:37

+0

然後,NachoF將需要調整路線以指示請求的主題。 '/ client/73/messages?view = sent' 並用適當的查找器替換Messages。[all | sent | received]。 可能: 'client.messages.sent' 但在問題NachoF沒有提供有關消息關聯的信息。 – 2009-12-01 17:05:19

+0

然後他會使用參數來調用發送消息關聯?如果我以「delete_all」的形式發送這些參數呢? – 2009-12-01 22:19:12