該網站的用戶有張圖片,顯示打開一個模式,他們點擊:使用respond_to do | format | format.js顯示一個模式內的消息後照片是在模態內收藏?
照片/ show.html.erb
<%= link_to favorite_photo_path("#{photo.id}"), method: :put do %>
<span class="glyphicon glyphicon-heart"></span>
<% end %>
的最終目標是讓用戶在模式內,在模式內顯示一條消息,「你已經成功收藏了這張照片」......我在控制器中間測試了這一點,我打電話給respond_to do...
但是,當點擊圖形時,模型會更新,但瀏覽器結束up stuck on www.examples.com/photos/1/favorite
條路線
resources :photos do
match :favorite, on: :member, via: [:put, :delete]
end
PhotosController
def favorite
@photo = Photo.find params[:id]
if request.put?
response = current_user.favorite_photos.new(photo: @photo)
if !response.valid?
redirect_to :back, notice: response.errors.full_messages
else
response.save
respond_to do |format|
format.js
end
end
else request.delete?
current_user.favorites.delete(@photo)
redirect_to :back, notice: 'You successfully unfavorited this photo'
end
end
照片/ favorite.js.erb
$('.modal-dialog.photo>.message').html('You have successfully favorited this photo');
當HTML:使用{redirect_to的背面},它關閉模態。
你寫了'else request.delete?',你的意思是'elsif request.delete?'? – fbelanger
它改變了代碼嗎? –
就你而言,不......只是因爲你在做'如果request.put?'。 「else request.delete?」語句不會按照您的想法進行評估。要爲if語句添加更多條件,您必須使用'elsif'。 – fbelanger