在rails 4.0中发出问题,为删除操作创建link_to
这是我在rails中的第一个项目,即创建一个存储游戏数据的表。 我能够从表格中显示关于赢家得分,输家得分等的数据。但是,我的表格列中存在包含每个游戏的删除链接的问题。
这是我在删除方法的游戏控制器中的代码:
def delete @game = Game.find(params[:game]) @game.destroy() redirect_to :action => 'index' end
我的表代码片段,其中包含link_to命令的行
在我调用的路由文件中
resources :games
据我所知,这有助于生成基本路由。 任何人都可以帮我弄清楚为什么我的link_to不起作用?
如果您使用(建议使用) resources
:a)您删除记录的操作应命名为destroy
。 b)使用:id
参数搜索游戏:id
参数:
def destroy @game = Game.find(params[:id]) @game.destroy redirect_to :action => 'index' end
c)您的链接应该是:
<%= link_to 'Delete', t, method: :delete %>
由于路径与show
动作相同,因此唯一改变的是HTTP方法。
删除调用的格式为:
<%= link_to 'Delete', game_path(t.id), :method => :delete %>
使用rake routes
来了解可用的路由,包括生成的路由助手,以及处理请求的控制器/操作。
我在rails 4.2.1上有类似的问题,即使使用:method =>:delete on link_to它仍然路由到show方法。
但是使用如下的button_to方法有效!
<%= button_to "delete", article_path(:id => article.id), :method => :delete %>
button_to在按钮周围创建一个表单然后发布到delete方法,通过添加一个名为_method
的隐藏字段和值delete
rails使用它来路由到控制器中的destroy方法。
尝试在<%= javascript_include_tag "application" %>
之前使用你的布局,也删除
//= require jquery
你的application.js中的一行。 这就是我的情况。 不知道为什么它没有使用原始rails jquery.js文件。
- Ruby的二维数组
- 在Ruby中替换引用的Integer值,如String#replace
- UTF-8中的Ruby无效字节序列
- 在A之后开始并在Z之后结束时创建一系列字母的数组即(B到AC)
- TrueClass的未定义方法`model_name’:DeviseConfirmations的类(Rails 4,设计)
- 如何在XML(UTF-8)中嵌入上传的二进制文件(ASCII-8BIT)?
- 我什么时候应该使用DateTime vs date,ruby / rails中的时间字段?
- Errno :: EACCES:运行Bundle Install时,权限被拒绝@ rb_sysopen错误
- 如何在ruby中按位置获取哈希值?