我收到了一個基於railscast 238的評論模型,但我想添加投票和評級。在同一控制器中添加額定值和評論
我當前顯示的文章控制器:
def show
@article = Article.find(params[:id])
@commentable = @article
@comments = @commentable.comments
@comment = Comment.new
respond_to do |format|
format.html # show.html.erb
format.json { render json: @article }
end
end
我試圖複製相同的過程和增加差餉,但我不知道如何將它融入表演動作。我曾考慮從應用程序控制器創建一個通用函數,然後嘗試將它分配給show函數中的多個事物(newb),但似乎過於複雜。
我嘗試添加:
@rateable = @article
@ratings = @rateable.ratings
@rating = Rating.new
它沒有工作。但現在我認爲它可能工作,如果我把它分配到
@ratings = Article.find(params[:id]}
@ratings = @rateable.ratings
@rating = Rating.new
即使這樣做的工作,必須有更乾淨的方式來做到這一點。
編輯:從該行的代碼,這是相同的工作評論版校正之後
錯誤。
<%= form_for [@rateable, @rating] do |f| %>
<% if @rating.errors.any? %>
<div class="error_messages">
<h2>Please correct the following errors.</h2>
<ul>
<% @rating.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.text_area :content, rows: 8 %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
您只想在'show'視圖中使用參數'@ rateable','@ ratings'和'@ rating'? –
另外,爲什麼設置'@commentable = @ article'和'@rateable = @ article'?爲什麼不僅僅指「@文章」? –
當我這樣做,我得到'未定義的方法article_ratings_path」' https://github.com/railscasts/154-polymorphic-association-revised/blob/master/blog-after/app/controllers/articles_controller.rb 我非常喜歡這個,不知道如何添加另一個對象。 所以你的第一個問題的答案是肯定的。 – McDoku