Rails 5: 如何在没有任何控制器的情况下使用 link_to 设置 object 的属性
Rails 5: How to set an object's attributes using link_to, without any controllers
我正在尝试更新具有属性名称的 object 标题狗。我希望使用任何控制器方法来做到这一点,目前我正在尝试这样做:
<%= link_to 'Delete Name', dog_path(@dog:{name: nil}), method: :patch %>
这一直给我一个语法错误,但我已经尽力了。
此外,我知道可以在控制器中定义一个函数(在本例中标题为 "delete_name")并使用以下内容:
<%= link_to 'Delete Name', controller: "dogs", action: "delete_name", id: @dog %>
但是我想用第一种方法。感谢您的帮助!
<%= link_to 'Delete Name', dog_path(@dog:{name: nil}), method: :patch %>
确实有语法错误。你的散列键前面有一个@,叫做dog。应该是:
<%= link_to 'Delete Name', dog_path(dog:{name: nil}), method: :patch %>
您不想使用实例变量作为哈希的键,因为那样会将实例变量的值设置为键。看这个例子:
2.3.3 :001 > @instance_variable = "test"
=> "test"
2.3.3 :002 > {@instance_variable => "value"}
=> {"test"=>"value"}
我正在尝试更新具有属性名称的 object 标题狗。我希望使用任何控制器方法来做到这一点,目前我正在尝试这样做:
<%= link_to 'Delete Name', dog_path(@dog:{name: nil}), method: :patch %>
这一直给我一个语法错误,但我已经尽力了。
此外,我知道可以在控制器中定义一个函数(在本例中标题为 "delete_name")并使用以下内容:
<%= link_to 'Delete Name', controller: "dogs", action: "delete_name", id: @dog %>
但是我想用第一种方法。感谢您的帮助!
<%= link_to 'Delete Name', dog_path(@dog:{name: nil}), method: :patch %>
确实有语法错误。你的散列键前面有一个@,叫做dog。应该是:
<%= link_to 'Delete Name', dog_path(dog:{name: nil}), method: :patch %>
您不想使用实例变量作为哈希的键,因为那样会将实例变量的值设置为键。看这个例子:
2.3.3 :001 > @instance_variable = "test"
=> "test"
2.3.3 :002 > {@instance_variable => "value"}
=> {"test"=>"value"}