我有一個評論系統,可以讓用戶爲影片創建評論,如果他們試圖爲同一部影片添加另一個評論,它會更新他們之前的評論。更新通過審閱控制器中的create
方法完成。插入和編輯用戶評論
我試圖在電影放映頁面中使用它。目前,用戶可以通過選擇總是在那裏的電影的顯示頁面上的「添加評論」選項來添加評論。如果他們之前通過選擇「添加評論」爲該特定影片撰寫了評論,則他們之前的評論仍會更新。我想要做的是顯示一個按鈕,如果他們之前已經撰寫了評論,則顯示「編輯評論」,如果他們沒有評論,則顯示「添加評論」。有任何想法嗎?
審查控制器 - 創建:
def create
@review = Review.find_or_create_by_film_id_and_name(params[:review][:film_id],
User.find(session[:user_id]).name)
@review.update_attributes(params[:review])
if @review.save
film = Film.find(@review.film.id)
redirect_to film, notice: 'Your review was successfully added.'
else
render action: "new"
end
end
審查控制器 - 新:
def new
if logged_in?
@review = Review.new(:film_id => params[:id], :name =>
User.find(session[:user_id]).name)
session[:return_to] = nil
else
session[:return_to] = request.url
redirect_to login_path, alert: " 'You need to login to write a review' "
end
end
電影放映頁:
<%= button_to 'Add Review',{controller: 'reviews', action: 'new', id: @film.id },
{class: "button-to"}%>
TBH它可能會更好地說:「你已經審閱本。如果您想修改當前評論,請點擊這裏「 – Alfo 2013-03-04 19:05:20