많은 사용자에게 has_and_belongs_to _ 많은 사용자가있는 프로젝트 모델에 대해 M : N 관계를 만들려고합니다. 사용자는 많은 프로젝트에 참여할 수 있지만 프로젝트에도 많은 사용자가 있습니다. 내 조인 테이블에 다른 열이 없기 때문에 원인이 필요 없다고 생각합니다. (: 프로젝트 와 has_and_belongs_to_many : has_and_belongs_to_many 사용자)Ruby on Rails 3 : 새로운 컨트롤러 액션을 사용하는 HABTM
그래서 난 내 두 모델 협회를 포함하여 새로운 마이그레이션 설정 :
일하고class AddProjectsUsersTable < ActiveRecord::Migration
def self.up
create_table :projects_users, :id => false do |t|
t.references :project, :user
end
end
def self.down
drop_table :projects_users
end
end
.. 내가 옆에 있는지 모르겠어요를 일들이 옳은지 아닌지 - 그러나 나는 무언가를 시도했습니다. 사용자 컨트롤러에서 프로젝트에 대한이 사용자와의 관계를 설정할 수있는 새 작업을 만들려고했습니다.
def joinProject
@user = current_user
@user.projects = Project.find(params[:id])
respond_to do |format|
format.html { redirect_to @project, notice: 'Successfully joined project.' }
format.json { head :no_content }
end
end
그것이 말하는 원인 그것은 아마도 잘못된 방법입니다 : "undefined method 'each' for #<Project:0x00000103f10028>
"
나는 다른 사람이 관계를 설정하는 방법 ? 이 HABTM 관계가 어떻게 작동하는지 이해하지 못했던 것 같습니다.
아무도 도와 줄 수 있습니까? ;
흥미 롭거나 잘못 될 수있는 일부 추가 정보)
나는이 경로 생성 :
match "joinProject_user/:id" => "users#joinProject", :as => :joinProject
를 다음과 같이 내보기에서 컨트롤러의 액션을 호출 :
<%= link_to 'Join', joinProject_path(project) %>
그게 효과가 있습니다 - 정말 고마워요! – cruxi