나는 코드와 경로의 이상한 점 때문에 양식을 함께 자수했다. 데이터를 데이터베이스에 추가하는 데는 문제가 있지만 데이터를 업데이트하는 방법을 알아낼 수는 없습니다. 여기에 몇 가지 코드가 있습니다.표준이 아닌 서식으로 update_attributes
new.html.erb
<% form_tag '/list' do %>
Episodes Completed:
<%= text_field_tag "completed" %>
Watch Status
<%= collection_select(nil, 'id', @show_status, :id, :state) %>
<%= hidden_field_tag('show_id', @show.id) %>
<%= submit_tag 'Add' %>
<% end %>
edit.html.erb 여기
<% form_tag("/list/#{@show_completion.show.id}", :method => :put) do %>
Episodes Completed:
<%= text_field_tag "completed", @show_completion.episodes_completed %>
Watch Status
<%= collection_select(nil, 'id', @show_status, :id, :state) %>
<%= hidden_field_tag('show_id', @show_completion.show.id) %>
<%= submit_tag 'Edit' %>
<% end %>
는 컨트롤러의 생성 및 업데이트 방법
def create
@show_completetion = ShowCompletionStatus.new
@show_completetion.user_id = current_user.id
@show_completetion.episodes_completed = params[:completed]
@show_completetion.status_state_id = params[:id]
@show_completetion.show_id = params[:show_id]
@show_completetion.save
end
def update
@show_completion = ShowCompletionStatus.find(params[:id])
@show_completion.episodes_completed = params[:completed]
@show_completion.status_state_id = params[:id]
@show_completion.show_id = params[:show_id]
if @show_completion.update_attribute('episodes_completed', params[:completed])
redirect_to "/list/#{current_user.username}"
else
redirect_to "/list/#{params[:id]}/edit"
end
end
여기
내입니다입니다 이 경로 :
match "list/" => "list#create", :via => :post
match "list/new/:show_id" => "list#new", :constraints => { :show_id => /[0-9]+/ }
match "list/:id/edit" => "list#edit", :constraints => { :id => /[0-9]+/ }, :via => :get
match "list/:id" => "list#update", :constraints => { :id => /[0-9]+/ }, :via => :put
나는 4 시간 이내에 더 나은 결과를 얻기 위해 여러 가지 시도를 해왔습니다. 나는 뭔가를 놓친 것 같아 보이지만 나는 그것을 볼 수 없다.
더 나은 작동 방식을 만드는 더 좋은 방법이 있습니까?
도움을 주시면 감사하겠습니다.
이미 속성에 직접 할당 했으므로'update_attributes' 호출이 필요 없으며'save! '를 호출하십시오. –
다른 하나의 코멘트에 남겨 두었습니다. 내가 할 때마다 새 레코드를 삽입하고 이전 레코드를 업데이트하지 않습니다. 나는 그것이 일어나고 있는지 확인하기 위해 여러 번 시도했다. 나는 약 10 번 동안 하나의 필드를 계속 변경했고, 나는 db에서 10 개의 새로운 레코드를 갖게되었다. – percent20