나는 몽고이드를 사용하는 레일즈 앱을 만들고있다. 현재이 기능은 꽤 기본이지만 예상대로 작동하지 않습니다. 특히, 업데이트가 전혀 작동하지 않습니다.레일 웨이 앱으로 몽고이드가 업데이트 저장되지 않는다
사용자를 만들 수 있지만 다시 업데이트 할 때 오류가 발생하지 않지만 저장되지는 않습니다. 이것은 일부 코드에서 더 명확해질 수 있습니다. 컨트롤러에이
devise_for :users
resources :users
그리고 : 나는 루트이있어
## WORKS PERFECTLY FOR SIGNING USERS UP, AND FLASHES CORRECTLY
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save!
flash[:success] = "Welcome!"
sign_in @user
redirect_to @user
else
render 'new'
end
end
## DOES NOT UPDATE THE USER RECORD, AND DOES NOT FLASH SUCCESS
## IT DOES, HOWEVER, REDIRECT TO SHOW, INSTEAD OF RENDERING EDIT
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.save!
flash[:success] = "Profile edited successfully!"
redirect_to @user
else
render 'edit'
end
end
을 그래서 그래. 코드에서 알 수 있듯이 기존 사용자를 편집하기 위해 내 의견을 검토하지 않고 해당 사용자를 편집하지 않으며 사용자가 편집되었음을 알리는 플래시를 제공하지 않지만 올바르게 리디렉션합니다. 나는 현재 사용자 검증이 없지만 (일부는 devise가있을 수도 있음) 모든 devise 관련 필드를 변경해도 문제가 해결되지 않으므로 자동 유효성 검증에 실패하지는 않습니다.
양식은 기본
<%= form_for @user do |f| %>
<%= f.label: name %>
<%= f.text_field :name %>
...
<%= f.submit %>
<% end %>
종류이다.
다른 코드가 도움이 될지 잘 모르겠습니다. 저에게 알려주세요. 나는 아주 많이 놀랐다. 감사!
Ahhhhhh을 사용할 수 있습니다 PARAMS 통과해야합니다. 굉장해. 나는 그것을 놓쳤다는 것을 믿을 수 없다. 그 점을 지적 해 주셔서 너무 고마워요. 당신의 대답은 8 분 안에 받아 들여지고 있습니다. – Sasha