0
下的Ruby on Rails的3下對象創建()的編輯()提交不同的對象
我的編輯頁面,我的經銷商對象有一個按鈕即可提交所選用戶的USER_ID。表單POST正確的user_id,但使用reseller_controller的edit()方法。我希望它做的是在帶有POSTed user_id的證書表下創建一個新記錄。我很困惑,但應用程序似乎引用了certificates_controller的create()方法。除了發送POST之外,它什麼也不做。我錯過了什麼?
我的模型:
class Certificate < ActiveRecord::Base
attr_accessible :attend, :pass, :user_id
validates :user_id, presence: true
end
我與編輯()
def edit
@trained = Certificate.new(params[:certificate])
@trained.save
end
我certificate_controller與創建()
def create
@trained = Certificate.new(params[:certificate])
@trained.save
end
我edit.html.erb與按鈕reseller_controller
<%= form_for(@trained) do |f| %>
<%= select_tag "certificate[user_id]", options_for_select(@current_users.collect{|x| [x.name, x.id]}), {:multiple => :multiple} %>
<%= f.submit "Trained", class: "btn btn-large btn-primary" %>
<% end %>
這是當我點擊按鈕的日誌:
Started POST "/certificates" for 50.241.102.234 at 2013-12-20 10:54:43 -0800
Processing by CertificatesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xYUdeMjkxa1b0AhNTKJi9sDbSPo9MbwMMVPrV7cgpyo=", "certificate"=>{"user_id"=>"16"}, "commit"=>"Trained"}
更新方法應該在我的certificates_controller權限? – DDDD
是的,所有的代碼應該在同一個控制器中。 –
儘管證書記錄不存在,但必須創建證書記錄。現在,沒有一個用戶擁有與之關聯的證書記錄,所以我需要第一次創建一個新證書。 – DDDD