0

编辑后出现一个新的选择框。我在编辑中修改的模型是另一个使用 fields_for 选项的模型。

有人提到我在控制器中遇到了 new 和 create 操作的问题。

当前控制器:

def new
  @print = Print.new
end

def create
  @print = Print.new(params[:print])
  @print.user_id = current_user.id
  if @print.save
    redirect_to print_path(@print), :flash => { :success => "Successfully created your Print Order." }
  else
    render :action => 'new'
  end
end

def edit
  @print = Print.find(params[:id])
  @print.blackwhites.build
end

来自模型的编辑数据的 fields_for:

  def index

  def new
    @blackwhite = Blackwhite.new
  end

  def create
    @blackwhite = Blackwhite.new(params[:blackwhite])
    @blackwhite.print_id = @print.id
  end

  def update
    @blackwhite = Blackwhite.find(params[:id])
  end

  def show
    @blackwhite = Blackwhite.find(params[:id])
  end

  def edit
    @blackwhite = Blackwhite.find(params[:id])
  end

编辑:

修复了问题。

4

1 回答 1

1

我看到的第一件事:

def create
  @blackwhite = Blackwhite.new(params[:blackwhite])
  @blackwhite.print_id = @print.id
  render :action => 'new'   <<<< ?????
end

尝试

redirect_to print_path(@print)

这将是典型的默认操作,显示刚刚创建的数据,或者在您的嵌套情况下,显示刚刚创建的记录的父级。您真正需要做的就是在创建后停止渲染新动作,这是不对的!

于 2013-06-12T18:00:32.333 回答