Я использовал
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
Должен ли я просто использовать скрепку, как он?Есть ли способ решить эту проблему?