2012-07-01 75 views
0

我有兩個本地主機web服務器運行(webrick);一個在3000端口(服務器),另一個在3001(網頁)。但這是毫無意義的,因爲它似乎在服務器端被破壞了。Rails 3嵌入式小部件:show.js.erb似乎不起作用

在「服務器」上,如果我轉到'http:// localhost:3000/projects/5.js',則不加載。我得到一個白色的屏幕和'查看頁面源'甚至沒有作爲選項。

我猜document.write是問題,但我不能排除故障,因爲沒有加載。有沒有我需要的路線呢?我的項目/演出活動中有什麼不同嗎?

####The website embedded code: 
<iframe src="http://localhost:3000/projects/5.js"></iframe> 

####projects_controller.rb 
def widget 
    @project = Project.find(params[:id]) 
end 

def show 
    @project = Project.find(params[:id])  
    respond_to do |format| 
    format.html { render :layout => 'application_project' } 
    format.json { render json: @project } 
    end 
end 

####projects/show.js.erb 
document.write("<%= escape_javascript(content_tag(:iframe, '', :src => widget_project_url(@project))).html_safe %>"); 

####projects/widget.html.erb 
<div id="project-embed-widget"> 
    <h3><%= link_to @project.name, @project %></h3> 
    <% if @project.funding? %> 
     <h4> 
     <% if @project.backers.nil? %> 
      0 
     <% else %> 
      <%= @project.backers.count %> 
     <% end %> 
     BACKERS</h4> 
     <% @project.calc_goal_collected %> 
     <h4><%= number_to_currency(@project.goal_collected, :unit => "$") %></h4> 
     <h4>PLEDGED OF <%= number_to_currency(@project.goal, :unit => "$") %> GOAL</h4> 
     <h4><%= @project.time_to_go[:time] %> 
     <%= @project.time_to_go[:unit].upcase %> TO GO</h4> 
     <br /> 
     <%= render "funding_message" %> 
     <br /> 
    <% else %> 
     <%= @project.about %> 
    <% end %> 
    </div> 

####routes.rb 
resources :projects do 
    member do 
    get 'widget' 
    end 
end 

回答

0

嗯,有一兩件事我注意到的是,我們在調用<iframe src="http://localhost:3000/projects/5.js"></iframe>JS不是在控制器的響應格式之一。將format.js添加到respond_to塊。