0

だから私はこのクラスメソッドを手に入れました:

  def self.auth(id, key_code_in)
    post = Post.where(:id => id).first   
    if post.key_code == key_code_in
      post
    else
      nil
    end   
  end

それはコンソールが大好きです:

1.9.3p194 :001 > authtest = Post.auth('5032f3254ff9fcf10100001b', 42745590875)
=> #<Post _id: 5032f3254ff9fcf10100001b, _type: nil, created_at: 2012-08...

しかし、コントローラーは大嫌いです。

  #GET posts/:id/remove_form
  def remove_form
  end

  #POST posts/:id
  def code
    @id = params[:id]
    @key = params[:destroy_code]    
    @post = Post.auth(@id, @key)

    render :text => params[@post].inspect
  end

毎回、私をゼロにします。パラメータがビューform_tagから渡されていることを確認しました。それでそれを除外する...一体何が起こっているのか?たくさんの賛成票があれば、どんな助けでも大歓迎です。

4

3 に答える 3

1

わかると思います!

なぜアクセスしているのparams[@post]ですか?このメソッドの結果は単純に@post.

于 2012-08-21T12:24:06.597 に答える
1

パラメータは文字列ではありませんか(比較は整数を期待しています)。

to_i メソッドで変換できます。

于 2012-08-21T11:54:30.090 に答える
1

IDを適切に使用している場合は、これを試してください。

def code @id = params[:id].to_i @key = params[:destroy_code]
@post = Post.auth(@id, @key)

render :text => @post.inspect

終わり

于 2012-08-21T12:26:41.723 に答える