2013-03-02 3 views
0

저는 레일을 처음 사용합니다. 나는 질문을 올리기로 결정하기 전에 대답을 찾고 있었다. 내가 찾은 2 개의 답은 나를 위해 일하지 않았다.사용자 이름 rails devise

그래서 "post"및 "devise"모델이 설치 및 구성되어 있습니다.

는 I 사용자

다음 관계

사용자에 "이름"을 추가 -> 많은 포스트있다 -> 사용자에 속한다.

하지만 막혔습니다.

게시물과 함께 렌더링 할 때 정확히 사용자 이름을 검색합니까?

< % = post.user.username = %>?

그 밖의 무엇을해야합니까?

post.rb

class Post < ActiveRecord::Base 
    attr_accessible :postbody, :posttitle 
    validates_presence_of :postbody, :posttitle 
    belongs_to :user 

end 

user.rb은 class User < ActiveRecord::Base

# Include default devise modules. Others available are: 
    # :token_authenticatable, :confirmable, 
    # :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :username, :email, :password, :password_confirmation, :remember_me 
    # attr_accessible :title, :body 

    has_many :posts 

end

+0

귀하의 질문, 문제점에 대해 구체적으로 설명하십시오. – swapab

+0

문제는 게시물이 생성 된 사용자 이름을 렌더링하려고합니다. 게시물 옆에 표시됩니다. – igrec

답변

0

당신은 당신이 발생하는 오류의 유형에 대해 언급하지 않았다. 그러나 정의되지 않은 속성에 대한 오류가있을 수 있습니다. attr_accessible :usernameUser 모델에 추가하여 사용자 이름을 액세스 할 수있게하십시오.

+0

죄송합니다. 사용자 이름을 attr_accessible에 입력했습니다. 오류는'code' (nil : NilClass에 대해 정의되지 않은 메소드'username ')입니다. – igrec

+0

님의 게시물에 관련 사용자가 없습니다. –

+0

감사합니다. 내가 한 것은 포스트 테이블'user_id'에 넣는 것입니다. 그런 다음 포스트 컨트롤러로'@post = current_user.posts.build (params [: post])'를 만들고,'<% = @ post.user.username %>'를 게시하십시오. 다시 귀하의 도움을 주셔서 감사합니다 – igrec

0

"궁리하다"는 뜻인가요? 오류에 대해 잘 모르겠지만 (전체 마이그레이션을 표시 할 수도 있음) 마이그레이션을 추가하는 대신 데이터베이스를 재설정하는 것이 좋습니다. 그냥 create_users 마이그레이션에

t.string :username 

을 넣어. 그런 다음

rake db:migrate:reset 
+0

안녕하세요, 네, 죄송합니다. OK 내가 그것을 재설정하고 내 모든 foo는 게시물을 닦아 여기 내 마이그레이션'클래스 AddUsernameToUsers는 <액티브 :: 마이그레이션 데프 add_column 변경 : 아이디 t.string을 : 사용자, t.string을 말을 끝의 이름을 ' – igrec

+0

모델 (게시물 및 사용자)과 사용자 생성 마이그레이션을 보는 것이 좋을 것입니다. Btw : 리셋과 관련하여 문제가 없을 때 "AddUsernameToUsers"- 마이그레이션이 필요하지 않습니다. – Sadik

+0

확실히, 메인 포스트에 추가했습니다. 다시 감사합니다. – igrec

관련 문제