2

ブログを作成しました。ブログには投稿があり、投稿はユーザーによって作成されます。私のブログにはすでにログインシステムがあります。そして、私はユーザーと彼の投稿の間の関係を作りました. ここで、新しい投稿を追加するときに、Rails に user_id フィールドを自動入力させたいと考えています。

隠しフィールドを追加し、保存したセッションから user_id を追加する必要がありますか?

または、Ruby on Rails には、リレーションと ID の使用を処理する独自の方法がありますか?

@編集:

モデル:

class Post < ActiveRecord::Base
  validates_presence_of :subject, :body
  has_many :comments
  belongs_to :user 
end

コントローラー:

....
  def new
    @post = Post.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @post }
    end
  end
...
4

1 に答える 1

0

ブロガーの投稿が正しいユーザーに関連付けられていることを確認したい場合は、エンド ユーザーが値を変更できるため、フォーム フィールドを使用しないでください。あなたが持っているログインシステムに頼って、ブログ投稿フォームが送信されたときに次のようなことをする方が良いです:

def create
  @post = current_user.posts.build(params[:post])
  if @post.save
    ...
  else
    ...
  end
end

current_userこれは、おそらく application.rb に、ログイン システムを介して現在のユーザーを取得するメソッドがあることを前提としています。おそらく次のようなものです:

def current_user
  @current_user ||= User.find(session[:user_id])
end

has_many :postsまた、User.rbを入れたと仮定します。

于 2009-03-31T03:56:58.773 に答える