在更新动作中实现捕获逻辑方法



我目前正在开发一个国际象棋应用程序,我正在努力弄清楚如何实现move_to!方法,该方法执行捕获逻辑,以便在控制器上的更新操作中发生。我遇到的问题是,我不确定如何甚至调用该方法。我需要重写整个更新动作在控制器或…?

下面是更新操作:

def update 
  @highlighted_piece = Piece.find(params[:id])
  @game = @highlighted_piece.game
  @x_pos = params[:piece][:x_position]
  @y_pos = params[:piece][:y_position]
  @highlighted_piece.update_attributes({ x_position: @x_pos, y_position: @y_pos})
  redirect_to @game
end

下面是捕获逻辑:

<标题>捕捉逻辑h1> 想我可以直接调用move_to!在我的@highlighted_piece上,但它似乎没有做任何事情。

move_to!应该工作,如果你把它作为Piece类的实例方法。

但是我发现错误的是else部分到if Piece.where(x_ ...使它忽略空槽的移动。我的意思是说在new_x和new_y处没有棋子,那么你应该能够将棋子移动到空位置,对吧?但else部分只是让它看起来什么都没发生。这应该是原因。

最新更新