0

2 つの localhost Web サーバー (webrick) を実行しています。1 つはポート 3000 (サーバー) に、もう 1 つは 3001 (Web ページ) にあります。しかし、サーバー側で壊れているように見えるので、これは無意味です。

「サーバー」で「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
4

1 に答える 1

0

さて、私が気づいたことの 1 つは、あなたが呼び出していることですが<iframe src="http://localhost:3000/projects/5.js"></iframe>jsはコントローラーの応答形式の 1 つではありません。format.jsRespond_to ブロックに追加します。

于 2012-07-03T15:29:46.057 に答える