* 모든 코드를 보려면 주석을 클릭하십시오.폼의 생성 동작을 사용하여 조인 테이블과 상호 작용할 수 있습니까?
새로운 "accounts"가 생성됩니다. 각각의 새로운 계정은 have_many : users입니다. 사용자는 have_and_belong_to_many 역할입니다. 새로운 사용자에게 새 계정 양식으로 기존 역할을 할당하려고합니다. 일반적으로 쉬운 프로세스 그러나 ...
사용자와 역할 간의 has_and_belong_to_many 연관은 사용자와 역할이 조인 테이블에 의해 연결됨을 의미합니다. 나는 함께 일할 모델이 없다. 그래서 나는 이것을 코딩하는 방법을 모릅니다. here (대답)에 설명 된 방법을 사용하여 새 역할을 만들 수 있지만 계정 모델을 통해 기존 사용자 역할에 기존 역할을 할당하는 것은 우둔합니다. 나는 레일에서 만든 새 사용자의 ID와 같은 기능을하는 (29)을 필요로하는 곳에 SQL (0.1ms) INSERT INTO "roles_users" ("role_id", "user_id") VALUES (6, 29)
즉 VAULES (6, ID)
현재 코드 :
동일한 SQL은 다음과 같이 될 것이다 (새 역할을 생성)
<% f.fields_for :users do |builder| %>
<%= render 'user_fields', :f => builder %>
<p>Login : <%= f.text_field :login %>
<p>Email : <%= f.text_field :email %>
<p>Password : <%= f.password_field :password %>
<p>Confirm Password : <%= f.password_field :password_confirmation %>
<%= f.hidden_field :account_id, :value => :id %>
<% f.fields_for :roles do |builder| %>
<%= builder.hidden_field :name, :value => 'test' %>
<% end %>
Account.rb
has_many :users
accepts_nested_attributes_for :users
User.rb
has_and_belongs_to_many :roles
accepts_nested_attributes_for :roles
accounts_controller.rb
def new
@account = Account.new
#builds user and roles in memory
1.times do
user = @account.users.build
1.times { user.roles.build }
end
스타 벅스 기프트 카드를 보낼 수 있습니까? 나는이 문제에 종일 종사하고있다. 고맙습니다! –