2012-07-02 7 views
0

작업이 생성되면 프로젝트의 ID를 갖도록 작업 양식의 숨겨진 필드에있는 세션에서 프로젝트 ID를 전달하려고합니다. 그것에 배정 된 나는 이것을 벌써 끝내었고 코드가 작동 할 때 사용했던 코드를 복사 해 보았습니다.하지만 이름을 바꾸면 내가하는 일에 상관없이 오류가 발생합니다. 누군가 내가 갈 곳을 지적 할 수 있다면 틀렸어, 고마워 할거야, 고마워!레일즈 - 숨겨진 필드에 세션 정보 전달 중 - 오류가 발생했습니다.

나는이 구성지고있어 오류 : "알 수없는 속성 : PROJECT_ID"

코드보기 (작업/_form) :

<%= form_for(@task) do |f| %> 
    <div class="field"> 
    <%= f.hidden_field :project_id, :value => session[:project_id] %> 
    </div> 
... 
<% end %> 

모델 코드 (작업) :

attr_accessible :project_id 

belongs_to :project 

컨트롤러 코드 (tasks_controller)

def new 
    @task = Task.new 
    @project_id = session[:project_id] 

    respond_to do |format| 
    format.html # new.html.erb 
    format.json { render json: @task } 
    end 
end 

def create 
    project_id = session[:project_id] 
    @task = Task.new(params[:task]) 

    respond_to do |format| 
    if @task.save 
     format.html { redirect_to @task, notice: 'Task was successfully created.' } 
     format.json { render json: @task, status: :created, location: @task } 
    else 
     format.html { render action: "new" } 
     format.json { render json: @task.errors, status: :unprocessable_entity } 
    end 
    end 
end 

다음은 응용 프로그램 추적입니다.이 코드는 46 번째 줄을 가리키고 있습니다.이 코드는 작성 작업의 '@task = Task.new (params [: task])'줄입니다.

app/controllers/tasks_controller.rb:46:in `new' 
app/controllers/tasks_controller.rb:46:in `create' 
+0

스택 추적은 좋을 것이므로 사람들은이 오류의 출처를 알 것입니다. 나는 그것이'@task = Task.new (params [: task])'에서 왔다고 생각하지만, 그것을 확인할 수 있다면 좋을 것이다. – Teoulas

+0

Ok - 질문에 응용 프로그램 추적을 추가했습니다. – ecs

+0

오류를 던지고있는 줄에 맞습니까? 문제를 해결하는 방법은 무엇입니까? 감사! – ecs

답변

0

작업 모델에 project_id 열이 있습니까?

+0

아 맞아, 아! - 방금 실제 데이터베이스를 확인했지만 그렇지 않습니다. - 작업에 대해 has_many 연관이 설정되지 않은 이전 버전의 프로젝트 모델을 실수로 사용하고있었습니다. 나는 이것들을 추가하고, 저장하고, 서버를 재시작하고, rake db : migrate 등을 수행했다. 그러나 외부 키로서 제대로 링크되도록 컬럼 자체를 추가하는 DB를 얻는 방법은 무엇인가? 또는 수동으로 추가해도 괜찮습니까? 감사! – ecs

+0

모델에 올바른 연결을 추가 했음에도 불구하고 여전히 동일한 오류가 발생합니다. 왜 그런가? – ecs

+0

해결했습니다. 적절한 외부 키가있는 새 마이그레이션을 추가해야합니다. 다른 사람이이 문제를 읽었을 때 비슷한 질문이 있으면 http://guides.rubyonrails.org/association_basics에서 대답을 찾았습니다. 외부 키 추가에 대해서는 3.3.1 절에서 html을 참조하십시오. 모두의 도움에 감사드립니다! – ecs

관련 문제