Ruby NoMethodError - 控制器

时间:2015-07-19 19:22:21

标签: ruby-on-rails ruby ajax controller

我在我的控制器中有这个功能

def create
    @tweet = Tweet.new(tweet_params)
    @tweet.user_id = current_user.id

    respond_to do |format|

        if @tweet.save
            format.html { redirect_to root_path, notice: "hello" }
            format.js   { render action: 'create', success: true, location: @tweet }
        else
            format.html { render action: 'show' }
            format.js   { render action: 'create', success: false }
        end

    end

end

表单设置为remote:true所以这是我的 create.js.erb

但我得到了他的错误

NoMethodError (undefined method `tweet_url' for #<TweetsController:0x007f8de60e4b58>):
  app/controllers/tweets_controller.rb:13:in `block (2 levels) in create'
  app/controllers/tweets_controller.rb:9:in `create'

知道为什么会显示此错误?

1 个答案:

答案 0 :(得分:5)

如果要渲染create.js.erb

,请尝试将其更改为此
format.js   { render action: 'create', success: true, location: @tweet }

简单地说就是这个

format.js