在我的應用程序中,我試圖創建一個允許用戶提交項目建議的鏈接。當用戶準備好提交審查時,用戶將點擊鏈接,這會導致布爾「submitreview」被標記爲true。Rails - 如何使用link_to更改數據庫中的布爾值?
我關注此帖作爲參考:Rails 3 how do I use link_to to change the value of a boolean in the db?。
眼下,布爾不會從虛假到真實的改變,它也被重定向到以下網址:http://localhost:3000/projects?submitreview=false
任何幫助,將不勝感激,謝謝!
*更新*根據建議更新了以下代碼,並在點擊鏈接後成功更新了布爾值。應該注意的是,這個包含鏈接的「表單」也會顯示在新的項目表單上。所以現在我的問題是,當我點擊新項目<%= link_to 'Start your project', new_project_path %>
時,我在下面得到以下新錯誤。當我刪除表單中的link_to submitreview時,不會出現錯誤,並且new_project呈現出色。我的猜測是,new_project尚未爲該項目創建一個ID,但在中有一個呼叫。這可以解決嗎?
Routing Error
No route matches {:action=>"submitreview", :controller=>"projects", :id=># ... }
項目/ _form.html.erb
<%= link_to "Submit Proposal", submitreview_project_path(@project), method: :put, class: "btn btn-primary" %>
projects_controller.rb
def submitreview
@project = Project.find(params[:id])
@project.update_attributes(submitreview: true)
redirect_to project_path(@project)
end
的routes.rb
resources :projects do
member do
get :submitreview
put :submitreview
end
end
條
耙路線
submitreview_project GET /projects/:id/submitreview(.:format) projects#submitreview
PUT /projects/:id/submitreview(.:format) projects#submitreview
爲什麼報價之間是「真實的」?它是一個字符串類型列嗎?如果不是,「真」似乎更合適。 – giorgian 2013-04-27 09:56:26
我更新爲'true',沒有引號,但鏈接仍然不會將布爾值更新爲true。 – spl 2013-04-27 10:04:57