当我从当前页面删除项目时,我想重定向到页面之前。 (即;如果总共3页,如果我删除1项,它应该重定向到第2页)。但是我得到了这个错误。
请给我一个解决方案
这是我的accounts_controller.rb
def customisations
@customises = @user.customised_dresses.all.order(id: :desc).page(params[:page]).per(1)
end
这是我的accounts/customisations.slim.html
if @customises
- if @customises.empty?
You have no items in your list
= link_to 'Customise Dress', :customise_index, class: 'btn btn-primary'
- else - @customises.each_slice(3) do |row|
.row
- row.each do |c|
= image_tag c.image_url(:preview)
a href="#{customised_dress_path(:id => c.id)}" data-method ="delete" rel="nofollow"
i.icon.ion-trash-b
|Delete
= paginate @customises`
这是我的'customised_dress_controller.rb`
def destroy
@customised_dresses = CustomisedDress.where(user_id: current_user.id, id: params[:id]).first
respond_to do |format|
if @customised_dresses.present?
@customised_dresses.destroy
last_page = @customises.total_pages
format.html redirect_to:customisations_account(page: last_page), notice: "Customised dress has been successfully destroyed"
else
format.html redirect_to:customisations_account(page: last_page), notice: 'You have no customised item.'
end
end
end
答案 0 :(得分:0)
在您的班级中,为ws.url=http://localhost:8080/WS/xsd/WS.xsd
属性定义attr_accessor:
<sws:static-wsdl id="MyWSService" location="/web-inf/wsdl/MyWS.wsdl"/>
然后,它会起作用。
它当前失败了,因为您未在customises
方法中声明attr_accessor :customises
实例变量。您在customises
方法中声明了它,但想要使用destroy
方法进行访问。
或者,您也可以在customisations
方法中使用destroy
方法代替customisations
。那也行得通。所以,你可以改变这一行:
@customises
为:
destroy
这应该可以解决您的问题。如果没有,请告诉我!我可以在收到您的反馈后更新我的答案。
我认为,当您在视图中调用last_page = @customises.total_pages
方法时,您需要将last_page = customisations.total_pages
作为参数传递给customised_dress_path
,以便它可以访问它。
类似的东西:
@customises
然后,在customised_dress_controller
customised_dress_path(:id => c.id, :customises => @customises)
方法中抓住它:
customised_dress_controller
这样,您destroy
方法中的@customises = params[:customises]
将不再是@customises
。