聽起來像是你應該建立兩者之間的關係模型,或者說是你有什麼了。
在創建方法只是這樣做
@post = current_user.posts.create(params[:post])
這需要在前端沒有現場和強制執行評論
聽起來像是你的用戶和他們的崗位
編輯之間的關係需要改變post.rb
belongs_to :user
到
belongs_to :sender, :class_name => "User"
編輯到架構
根據你的模型你只是存儲發送/接收的字符串,因爲這是你需要做的的情況是這樣的:
in controller#create
@post = Post.create(params[:post])
@post.sender = current_user.username
編輯:這個怎麼做正確
基於您的評論,它看起來像你想這樣做在關係的方式,不錯。
首先,對於您的文章,您需要將發件人和收件人更改爲整數,然後分別重命名sender_id和receiver_id。
接下來在您的用戶。RB模型,您需要具備以下條件:
has_many :sent_posts, :foreign_key => "sender_id"
has_many :received_posts, :foreign_key => "receiver_id"
在你post.rb模型,你需要具備以下條件:
belongs_to :sender, :class_name => "User"
belongs_to :receiver, :class_name => "User"
現在你可以做創建後
以下時
@post = current_user.sent_posts.create(params[:post])
而且可用以下方法
@post.sender #=> gets the sender
@post.receiver #=> gets the receiver
current_user.sent_posts #=> all posts from this user
current_user.received_posts #=> all posts for this user
注意我不能夠驗證這一點,但我敢肯定,上面應該爲你工作,可能有一些輕微的錯誤,因爲我目前不能仔細檢查
我可能需要在另一個問題中提出這個問題,但是現在我得到了一個「未定義的方法`user_id ='for#」錯誤。我可能做錯了什麼? –
thoughtpunch
2011-01-24 18:50:58