Rails carrierwave + Jcrop кадрирование с помощью Bootstrap Modal - PullRequest
0 голосов
/ 16 мая 2018

Я использовал

gem 'rails', '4.2.8'
gem 'carrierwave', '~> 1.2', '>= 1.2.2'
gem 'mini_magick', '~> 4.8'
gem 'Jcrop', '~> 0.1.0'

, а затем я пишу код в виде https://www.driftingruby.com/episodes/cropping-images-with-jcrop

Это работает хорошо.

Но проблема в том, когда я хочу изменить crop.html.erb на Bootstrap _modal.html.erb. Как изменить user_controller.erb?

исходные коды так:

def update
    @user = User.find(params[:id])
    if @user.update_attributes(user_params)
      if params[:user][:picture].present?
        render :crop   ###this how to change use modal.html
      else
        redirect_to @user
        flash[:success] = "更新成功"
      end
    else
      render :edit
    end
  end

Я пробовал как

https://stackoverflow.com/questions/37819575/how-to-show-modal-window-in-controllers-action?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

И новый user_controller.erb

def update
    @user = User.find(params[:id])
    if @user.update_attributes(user_params)
      if params[:user][:picture].present?
        respond_to do |format|  ##change here
          format.js    ##change here
        end   ##change here
      else
        redirect_to @user
        flash[:success] = "更新成功"
      end
    else
      render :edit
    end
  end

Но это всегда показывает, что:

ActionController::UnknownFormat

Если добавить format.html, у него есть ошибки templates missing, потому что я пишу HTML-коды в show.html.erb, ему нравится:

<%= form_for @user, :html => {:multipart => true} do |f| %>
  <div class="row " id="user_avatar_crop">
    <!-- Choose picture -->
    <div class="col-md-12">
      <%= f.file_field :picture, id: :user_avatar, :onchange => 'this.form.submit()' %>
    </div>

  </div>
  <!-- Modal -->
<% end %>
<div class="userAvatarUpload">

</div>
<%= image_tag @user.picture_url(:thumb) if @user.picture? %>

Как мне format.html до show.html.erb?

Мои вопросы примерно такие:

https://stackoverflow.com/questions/21027034/rails-carrierwave-jcrop-bootstrap

Должен ли я просто использовать скрепку, как он?Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 17 мая 2018
if params[:user][:picture].present?
    render :crop   ###this how to change use modal.html
  else

Всякий раз, когда вы используете render, вы выполняете действие, а не HTML-страницу. Мой совет: просто создайте новое действие с именем bootstrap _modal (не используйте Bootstrap с большой буквы) и переименуйте ваш Bootstrap _modal.html.erb в bootstrap _modal.html.erb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...