2012-04-16 116 views
0

我在新的轨道,我要实现聊天在我的Rails应用程序 以下http://railscasts.com/episodes/260-messaging-with-faye, 但即时通讯无法呈现::的ActionView在MissingTemplate轨道3

控制器:

def index @messages = Chat.all // all available chats 

我收到以下错误:

Missing partial chats/chat with {:handlers=>[:builder, :erb, :coffee], :formats=>[:html], :locale=>[:en, :en]}. Searched in: 
    * "/home/swagata/Desktop/swagata_new/swagata/app/views" 
    * "/home/swagata/.rvm/gems/[email protected]/gems/devise-2.0.4/app/views" 

我试图创建部分名称_chat.js.erb,但没有运气。 任何解决方案?

回答

0

创建chat.erb并检查它是否是工作或没有

+0

它的工作,但从chat.erb呈现_message.html.erb不会发生 – 2012-04-17 08:14:35

+0

我认为你可以添加respond_to块的行动,并创建chat.html.erb并呈现部分format.html {渲染:部分=>' '},目前我不记得但你可以明确地设置模板格式 – Amar 2012-04-17 08:59:42

1

Rails正在试图渲染HTML片段,但您所提供的只是部分被标记为一段JavaScript代码。

你可能想要一个HTML-ERB部分称为_chat.html.erb

0

如果你想使用JSON调用render消息; 在您的控制器

def index 
    @messages = Chat.all 
    respond_to do |format| 
    format.js { render "chat" } 
    end 
end 

,并在你的视图文件,应该是没有下划线一个chat.js.erb文件。 而你的chat.js.erb可能包含例如;

$('#chat').html("<%=j render '/messages' "); line在div处使用id“chat”呈现消息。

并且在同一个目录下应该有一个_messages.html.erb文件来呈现@messages。

+0

谢谢你的回答$('#chat')。html(“<%= j render'/ messages'”)这一行无法修改消息行 – 2012-04-17 07:37:16