2013-06-19 3 views
1

У меня возникла проблема при использовании Private Pub в проекте Rails 3. Все примеры показывают использование публикации/подписки на такой маршрут: "/ messages/new" Но что, если предполагаемый маршрут немного сложнее, т.е.Как использовать частный паб с ресурсным маршрутом, который имеет сегментный ключ?

routes.rb

resources :messages, only: [] do 
    post 'chat', on: :member 
end 

Который создаст следующую

chat_message POST /messages/:id/chat(.:format) messages#chat 

Поэтому я использую это так:

вид:

= Subscribe_to "/ сообщения/# {@ чид}/чат" вид отклика

кофе:

<% publish_to "/messages/#{current_user.convos.first.id}/chat" do %> 
$('#message-display').append("<%= j render partial: 'shared/single_message', locals: { user: current_user } %>") 
<% end %> 

Но блок никогда не будет срабатывает! Это должен быть тот же маршрут, не так ли? Я имею в виду, что сегментный ключ соответствует ... Он вообще не работает ни в каких представлениях, код внутри блока никогда не будет достигнут. Что я делаю не так?

Пожалуйста, помогите!

Jose.

Примечание. Все примеры, которые я видел, демонстрируют использование этого драгоценного камня для общего чата. Мое намерение состоит в том, чтобы создавать различные каналы для различных личных бесед между людьми (например, в чате Facebook)

+0

Мне удалось обойти эту проблему, используя вместо нее представление js.erb. Что привело меня к мысли, что проблема заключается в том, как CoffeeScript обрабатывает блоки рубина. может ли просмотр .js.coffee даже сделать это? – jlstr

+1

CoffeeScript не обрабатывает блоки рубина. Это ** ruby ​​** блоки. И вы не можете связать расширение в папке 'views /'. – Ven

+0

Итак, в основном единственный способ сделать это, чтобы сделать то, что я сделал? – jlstr

ответ

2

CoffeeScript не обрабатывает блоки ruby. Они рубиновые блоки. И вы не можете привязать расширение в папке views /.

+0

Отлично, это хорошо знать, потому что в документации четко не указано. Спасибо, сэр! – jlstr