내 응용 프로그램에서 사용자가 프로젝트 제안서를 제출할 수있는 링크를 만들려고합니다. 사용자가 검토를 위해 제출할 준비가되면 링크를 클릭하면 부울 "제출 검토"가 true로 표시됩니다.Rails - link_to를 사용하여 데이터베이스의 부울을 변경하는 방법?
나는이 게시물을 가이드로 따라 갔다 : Rails 3 how do I use link_to to change the value of a boolean in the db?. 다음 URL로
는 지금, 부울이 false에서 true로 변경하지 않으며, 또한 리디렉션됩니다 : http://localhost:3000/projects?submitreview=false
어떤 도움을 주시면 감사하겠습니다, 감사합니다!
* 업데이트 * 제안 사항대로 아래 코드를 업데이트했으며 링크를 클릭하면 성공적으로 부울을 업데이트했습니다. 링크가 포함 된이 "양식"은 새 프로젝트 양식에도 렌더링됩니다. 그래서 내 문제는 지금 새 프로젝트 <%= link_to 'Start your project', new_project_path %>
을 클릭하면 다음과 같은 새로운 오류가 발생합니다. 양식에서 submit_view 링크를 삭제하면 오류가 나타나지 않고 new_project가 훌륭하게 렌더링됩니다. 내 생각 엔 new_project가 프로젝트의 ID를 아직 만들지 않았고 def submitreview
에 호출이 있다는 것입니다. 이 문제를 해결할 수 있습니까?
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
개레이크 노선
submitreview_project GET /projects/:id/submitreview(.:format) projects#submitreview
PUT /projects/:id/submitreview(.:format) projects#submitreview
따옴표 사이에 "true"가 나타나는 이유는 무엇입니까? 그것은 문자열 유형 열입니까? 그렇지 않다면 '사실'이 더 적절할 것 같습니다. – giorgian
따옴표없이 'true'로 업데이트되었지만 링크는 여전히 부울을 true로 업데이트하지 않습니다. – spl