2011-03-31 1 views
2

이것은 첫 번째 Rails 프로젝트입니다. 동일한 테이블의 다른 열은 정상적으로 작동하지만 어떤 이유로 인해 데이터베이스의 한 열에 게시 할 수 없습니다. (필자가 동일한 테이블에 다른 컬럼을 채웠을 때 Faker gem을 사용하여 그 컬럼을 채울 수 없었기 때문에 나는 단지 데이터베이스에 들어가서 손으로 채웠을 뿐이므로 나는 그것을 지나갈 수 있었다.)Ruby on Rails form_for 데이터베이스에 대한 게시가 하나의 열에 대해 작동하지 않지만 같은 테이블에있는 다른 테이블에 대한 것임

내 데이터베이스에는 "id" "content" "user_id" "created_at" "updated_at"및 "heading"열이있는 테이블 "articles"이 있습니다. 새로운 기사를 작성하는 내 양식은 다음과 같이이다 :

<%= form_for @article do |f| %> 
    <div class="field"> 
    <%= f.text_field :heading, :size => "60x1" %> 
    </div> 
    <div class="field"> 
    <%= f.text_area :content, :size => "60x24" %> 
    </div> 
    <div class="actions"> 
    <%= f.submit "Submit" %> 
    </div> 
<% end %> 

내 articles_controller가 있습니다

def new 
@article = Article.new 
end 

def create 
if @article = current_user.articles.create!(params[:article]) 
    redirect_to root_path, :flash => { :success => "Article created!" } 
else 
    redirect_to "/articles/new" 
end 
end 

내가 양식을 제출하려고, 내 제목 검증에 하나 어획량 (: 존재 => 사실) 또는 유효성을 주석 처리하면 표제없이 제출하십시오. 소식에서 다음 매개 변수를 보내고 있습니다.

{"utf8"=>"✓", 
"authenticity_token"=>"...", 
"article"=>{"heading"=>"Test heading", 
"content"=>"Test content"}, 
"commit"=>"Submit"} 

제목이있는 것 같습니다. user_id를 포함하여 다른 모든 열이 채워집니다. 왜 표제가 채워지지 않습니까? 마이그레이션 또한 내 마이그레이션 reset_column_information 추가 : 나는 갈퀴 DB를 실행 한

def self.up 
add_column :articles, :heading, :string 
Article.reset_column_information 
end 

그러나 어느 쪽이든 작동하지 않았다.

또한 레일 콘솔에 들어가서 그런 식으로 새 기사를 추가하면 문제없이 표제를 추가 할 수 있습니다.

중요한 경우 SQLite를 사용하고 있습니다. 나중의 마이그레이션에서 제목 열을 추가했습니다. 열 순서에서 마지막으로 오는 문제 일 수 있습니까?

답변

2

저는 며칠 동안이 문제를 해결해 왔으며 게시를 마치 자마자 실제로 해결했습니다. 내 article.rb, 나는했다 :

attr_accessible :content, :heading 
:

attr_accessible :content 

내가로 변경했다

관련 문제