をレール:CRUDメソッドは、私がレールに新たなんだと私はここに非常に基本的な何かが欠落している可能性があり
ユーザーは、支店や会社
の部門の両方のための連絡先を作成することができますBranch.rb
class Branch < ApplicationRecord
belongs_to :company
has_many :contacts
end
Division.rb
class Division < ApplicationRecord
belongs_to :company
has_many :contacts
end
Contact.rb
class Contact < ApplicationRecord
belongs_to :branch
belongs_to :division
end
今、ユーザーがそこにはdivision_idはありませんし、課のページから連絡先を作成することができ、分岐ページから連絡先を作成することができます。
が、私はこのように私のroutes.rbをを定義している:
routes.rbを
resources :companies, :shallow => true do
get 'company_page'
resources :branches, :shallow => true do
get 'branch_page'
resources :contacts
end
resources :divisions, :shallow => true do
get 'division_page'
resources :contacts
end
end
をその結果、私は支店や部門のいずれかから連絡先を作成する場合、それは、連絡先番号に行きますメソッドを作成します。私contacts_controller.rbで
、私が持っている:
def create
@newContact = Contact.new(contact_params)
id = @division = @branch = nil
isBranch = false
if params[:branch_id] != nil
isBranch = true
id = params[:branch_id]
else
isBranch = false
id = params[:division_id]
end
if isBranch
branch = Branch.find(id)
@newContact.branch = branch
@branch = branch
else
division = Division.find(id)
@newContact.division = division
@division = division
end
respond_to do |format|
if @newContact.save
format.js
format.html { render :nothing => true, :notice => 'Contact created successfully!' }
format.json { render json: @newContact, status: :created, location: @newContact }
else
format.html { render action: "new" }
format.json { render json: @newContact, status: :unprocessable_entity }
end
end
end
しかし、私は@newContact.save
中にActiveRecord Error
に直面しています。
ここでは根本的に非常に間違ったことをやっていると確信しています。レールは私が知らない別のエレガントな方法でそのようなことを処理します。
エラーは何:
これは、それが動作することを証明していますか? – Anthony
'265msで500の内部サーバーエラーを完了しました(ActiveRecord:66。8ms) ' – user122121
私は、「連絡先」に2つの関連があるが、あなたはそれを1つだけ与えているので、エラーを推測しています。 log/development.logのエラーは何ですか? – Anthony