画像がクリックされたときにアプリのデータベースのブール値を更新するために、ここ Stackoverflow に投稿された回答に従ってみようとしています ( Rails - How to update a single attribute in controller )。
ただし、画像を含むページを読み込むと、次のエラーが発生します。
未定義のメソッド `toggle_is_contribution_comments_path' for #<#:0x000000053d8150>
私のルートファイル:
resources :comments do
member do
put :toggle_is_contribution
end
end
コントローラ:
def toggle_is_contribution
@comment = Comment.find(params[:work_id])
@comment.toggle!(:is_contribution)
respond_to do |format|
flash[:success] = "Work updated"
format.html { redirect_to root_path }
format.js
end
end
見る:
<%= image_tag comment.user.photo.url(:avatar) %></span> <%= link_to comment.user.full_name, comment.user if comment.user %>
<% if current_user == @work.user %>
<span class = "contribution">
<%= link_to image_tag("/assets/list_star.png"), comment, toggle_is_contribution_comments_path(comment),
:size => "15x15", :align => "right", :title=> "Add contribution to your work", :method=> :put %>
</span>
<% end %>
アプリがメソッドを認識しないのはなぜですか? 私は何を間違えましたか?モデルを確認しましたが、attr_accessible には is_contribution が含まれています
ありがとう!-b
編集 1: レーキ ルート:
toggle_is_contribution_comment PUT /comments/:id/toggle_is_contribution(.:format) comments#toggle_is_contribution
comments GET /comments(.:format) comments#index
POST /comments(.:format) comments#create
new_comment GET /comments/new(.:format) comments#new
edit_comment GET /comments/:id/edit(.:format) comments#edit
comment GET /comments/:id(.:format) comments#show
PUT /comments/:id(.:format) comments#update
DELETE /comments/:id(.:format) comments#destroy
編集2:
メソッド名を以下の Mischa の回答に編集した後、stringify キー エラーが発生します。
"/comments/1/toggle_is_contribution":String の未定義メソッド `stringify_keys'
編集3:
link_to を修正しましたが、この未定義のエラーが発生しました:
未定義のメソッド `toggle_is_contribution_comments_path' for #<#:0x00000004438ba0>