2014-11-08 6 views
0

Я слежу за этим учебником Jcrop-с учебником Paperclip: http://railscasts.com/episodes/182-cropping-images?view=asciicast, и я сделал все точно так, как он сказал, но где в учебнике указатель мыши создает перекрестие, когда оно удерживается над изображением на 5:24, мое не меняется вообще; это просто статический образ. Я подозреваю, что мое приложение не имеет доступа к файлам jquery-ui или Jcrop, но я не могу себе представить, почему бы и нет. Кто-нибудь с jquery-ui/Jcrop опытом видит что-то не так с моим кодом?Jcrop ничего не делает

Мои активы/javascripts и активы/таблицы стилей содержат соответствующие связанные файлы. Я использую Rails 4.0.10.

просмотров/макеты/application.js:

<head> 
    <title>Application</title> 
    <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> 
    <%= javascript_include_tag "application", "data-turbolinks-track" => true %> 
    <%= csrf_meta_tags %> 
    <%= stylesheet_link_tag "jquery-ui.min" %> 
    <%= javascript_include_tag "external/jquery/jquery" %> 
    <%= javascript_include_tag "jquery-ui.min" %> 
</head> 

просмотров/вещи/crop.html.erb

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

$(document).ready(ready); 
$(document).on('page:load', ready); 


<%= image_tag @thing.avatar.url(:large), :id => "cropbox" %> 

Контроллеры/things.rb

def create 
    @thing = Thing.new(thing_params) 
    if @thing.save 
    render :action => "crop" 
    end 
end 

модели/вещь .rb

class Thing < ActiveRecord::Base 
    has_attached_file :avatar, :styles => { :large => "500x500", :medium => "300x300>", :thumb => "50x50!" }, :default_url => "/images/:style/missing.png" 
    validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ 
    # ... 
end 

EDIT: Я попытался добавить некоторый код в crop.html.erb, чтобы turbolinks работал правильно, но ношение изменилось.

+0

Вы используете Turbolinks? Добавили ли вы какие-либо обычные «заставить Turbolinks вести себя разумно» для «$ (document) .ready()' вещей? –

+0

@muistooshort У меня есть Turbolinks, потому что я использую gemfile, данный учебником, но я с ним что-то сделал. К чему относятся эти хаки? –

+1

Сделайте несколько поисковых запросов для «jQuery turbolinks», и вы найдете несколько вещей. –

ответ

1

На основании вашего публикуемую кода, оказывается, что

$(document).ready(ready); 
$(document).on('page:load', ready); 

не между <script> тегами. Переместите эти строки кода выше </script>, и он должен работать.

Кроме того, похоже, что в вашем макете отсутствует <%= yield(:head) %>, поэтому content_for(:head), скорее всего, не добавляется нигде.

+0

Хорошая добыча, но это ничего не изменило. –

+0

@ user3739453, я просто нашел еще одну проблему в вашем коде и обновил свой ответ. – ptd

+0

@ Ах, вот и все. Спасибо! Я получу награду, когда смогу, через шесть часов. –

Смежные вопросы