我创建了一个反馈系统,并尝试获取特定的反馈归档。我尝试了多种不同的配置,但似乎无法让它工作。我没有收到错误,看起来它正在接收控制器操作,因为我收到通知。但是,布尔值在DB中不会改变,特定的反馈也不会隐藏。
任何帮助将不胜感激!
这是我的代码:
**Controller:**
def archive_feedback
@listing_feedback = ListingFeedback.find(params[:id])
respond_to do |format|
format.html { redirect_to listing_listing_feedbacks_path, notice: "That feedback has been archived." }
format.json { render :index }
end
end
**Routes: (My feedback feature is using nested resources)**
resources :listings do
member do
get 'like'
get 'unlike'
get 'duplicate'
get 'gallery'
delete 'gallery' => 'listings#clear_gallery'
get 'manage_photos'
get 'craigslist'
get "add_to_collection"
end
resources :listing_feedbacks do
member do
put 'archive_feedback'
end
end
end
**Index.html.erb:**
<p><%= link_to 'Archive', controller: "listing_feedbacks", action: "archive_feedback", id: listing_feedback.id, archive: :true, method: :put %></p>
另外,如果归档后我如何才能隐藏反馈?
答案 0 :(得分:0)
@listing_feedback
方法中 未更新 archive_feedback
。将其更改为
def archive_feedback
@listing_feedback = ListingFeedback.find(params[:id])
@listing_feedback.update(archive: true)
respond_to do |format|
format.html { redirect_to listing_listing_feedbacks_path, notice: "That feedback has been archived." }
format.json { render :index }
end
end
答案 1 :(得分:0)
您是否将新的归档属性添加到控制器中的请求参数?
如果不是,它将不会保存到数据库中。
private
def listing_feedback_params
params.require(:listing_feedback).permit :archive
end
答案 2 :(得分:-1)
I think ..
you have to write as below in controller
def archive_feedback
@listing_feedback = ListingFeedback.find(params[:id])
@listing_feedback.destroy
or
@listing_feedback.update_attribute(archive: true)
respond_to do |format|
format.html { redirect_to listing_listing_feedbacks_path, notice: "That feedback has been archived." }
format.json { render :index }
end
end