0

我正在使用render 'form'in index.html.erb,当用户提交表单时,他会被带到 /books/1。相反,我希望他重定向到索引控制器(因此,/books 页面)。

我曾尝试使用:

format.html { render action: "index", notice: 'Book Created' }

index.html.erb文件中,我有:

<% @books.each_with_index do |book,index| %>

该页面给出了错误:

undefined method each_with_index

这是我的方法:

def index
  @books = Book.all
  @book = Book.new

  respond_to do |format|
    format.html 
    format.json { render json: @books }
  end
end

def create
  @book = current_user.books.new(params[:book])

  respond_to do |format|
    if @book.save
      format.html { redirect_to @book, notice: 'Book created.' }
      #format.html { render action: "index", notice: 'Book Created' }      
    else
      format.html { render action: "new" }
    end
  end
end

如何使表单重定向到索引页面而不是显示页面?

4

2 回答 2

1

如果你想重定向到索引页面,你应该使用redirect_to方法:

def create
  @book = current_user.books.new(params[:book])

  respond_to do |format|
    if @book.save
      format.html { redirect_to action: :index, notice: 'Book created.' }
    else
      format.html { render action: "new" }
    end
  end
end
于 2013-07-23T13:44:26.390 回答
0

更改为控制器路径

 def create

  @book = current_user.books.new(params[:book])

  respond_to do |format|
    if @book.save
      format.html { redirect_to tests_path, notice: 'Book created.' }
    else
      format.html { render action: "new" }
    end
  end
end
于 2016-06-21T03:22:12.360 回答