我正在尝试遵循 Stackoverflow 上发布的答案,以便在单击图像时更新我的应用程序数据库中的布尔值(Rails - 如何更新控制器中的单个属性)。
但是,当我加载包含图像的页面时出现以下错误:
#<#:0x000000053d8150> 的未定义方法 `toggle_is_contribution_comments_path'
我的路线文件:
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 答案后,我得到一个字符串化键错误:
“/comments/1/toggle_is_contribution”的未定义方法“stringify_keys”:字符串
编辑 3:
修复了 link_to 但现在我得到了这个未定义的错误:
#<#:0x00000004438ba0> 的未定义方法 `toggle_is_contribution_comments_path'