Javascript Rails 3嵌入式小部件:show.js.erb似乎无法工作
我有两个运行webrick的本地主机Web服务器;一个位于端口3000服务器,一个位于3001网页。但这是毫无意义的,因为它似乎在服务器端被破坏了 在服务器上,如果我转到'http://localhost:3000/projects/5.js”“什么都没有。我有一个白色的屏幕,“查看页面源代码”甚至不能作为选项使用 我猜document.write是个问题,但我无法解决它,因为没有加载任何内容。有我需要的路线吗?在我的项目/展示行动中,我是否需要做一些不同的事情Javascript Rails 3嵌入式小部件:show.js.erb似乎无法工作,javascript,ruby-on-rails-3,iframe,widget,Javascript,Ruby On Rails 3,Iframe,Widget,我有两个运行webrick的本地主机Web服务器;一个位于端口3000服务器,一个位于3001网页。但这是毫无意义的,因为它似乎在服务器端被破坏了 在服务器上,如果我转到'http://localhost:3000/projects/5.js”“什么都没有。我有一个白色的屏幕,“查看页面源代码”甚至不能作为选项使用 我猜document.write是个问题,但我无法解决它,因为没有加载任何内容。有我需要的路线吗?在我的项目/展示行动中,我是否需要做一些不同的事情 ####The website
####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
嗯,我注意到的一件事是,您正在呼叫,但js不是控制器中的响应格式之一。将format.js添加到respond_to块