Jquery:Jcrop不工作:Railscasts 182

时间:2013-03-07 09:33:26

标签: jquery ruby-on-rails-3 jcrop railscasts

我正在使用Railscasts 182裁剪上传的图片。根据我实施的视频:

我正在个人资料页面上传图片。这是我的个人资料控制器:

def edit
  @profile = current_user.profile
  if @profile.photo.nil?
    redirect_to current_user.profile
  else
    render :action => "crop"
  end
end

def update
  @profile = current_user.profile
  if @profile.update_attributes(params[:profile])
    if @profile.photo.nil?
      redirect_to current_user.profile
    else
      render :action => "crop"
    end
  else
    render :edit
  end
end

根据视频我的crop.html.erb文件是:

<% "Crop avatar" %>

<% content_for(:head) do %>
  <%= stylesheet_link_tag "jquery.Jcrop" %>
  <%= javascript_include_tag "jquery.Jcrop.min" %>
  <script type="text/javascript">
  $(function(){
    $("#cropbox").jCrop();
  });
  </script>
<% end %>

<%= image_tag @profile.photo.avatar.url(:big), :id => "cropbox" %>

我在application.html.erb

中添加了这些内容
<%= javascript_include_tag "jquery.min" %>
<%= yield(:head) %>

当我提交图像时,它会显示普通图像。它不显示选择光标,因此无法选择图像上显示的区域。

我猜Jcrop不工作。谁能说出问题是什么?

1 个答案:

答案 0 :(得分:0)

通过查看源代码或在firebug中运行jquery.Jcrop.min,确保结果HTML文件中包含$("#cropbox").jCrop();

如果不是,请尝试将此行//= require jquery.Jcrop.min添加到application.js,然后预编译您的资产。

如果它仍未被包含,那么一个绝望的解决方案是删除content_for head(:head)行,由于某种原因,它无法将你的js代码附加到标题(这就是我最终做的)。