我正在尝试使用矩阵;我有一个模型,有一个名为“板”属性,它只是一个4x4矩阵。我以我的视角展示这块板子。到现在为止还挺好。当我点击一个按钮,我送参数“板”有,例如,这样的结构:矩阵未定义的方法,字符串到矩阵
{"utf8"=>"✓", "game_master"=>{"board"=>"Matrix[[0, 0, 0, 0], [0, 0, 1, 1], [0, 0, 1, 0], [1, 1, 0, 0]]"}, "commit"=>"Yolo"}
另一方面,在控制器中,我试图通过创建板新的游戏管理员重新这款主板= Matrix [[0,0,0,0],[0,0,1,1],[0,0,1,0],[1,1,0,0]]。到目前为止这么好(不,我知道param [:board]只是一个字符串,这是我的问题)。然后,后来,试图迭代矩阵时,我得到这个错误:
undefined method `each_with_index' for "Matrix[[0, 0, 0, 0], [0, 0, 1, 1], [0, 0, 1, 0], [1, 1, 0, 0]]":String
很显然,我势必:登上一个字符串不是一个矩阵。我将如何将该字符串转换为相应的矩阵?
感谢
UPDATE: game_masters_controller.rb
def step
@game_master = GameMaster.new(game_master_params)
@game_master.step
respond_to do |format|
format.js
end
end
和:
private
def game_master_params
params.require(:game_master).permit(:board)
end
game_master.rb
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
if(self.board == nil)
self.board = get_new_board
end
end
我们可以看到你指定PARAMS向董事会变量的代码?围绕代码的一点背景也可能有用。 – jklina
完成!需要帮助请叫我。谢谢 – bsilvacs