我有桌子,我用html显示该表的内容。显示的每条记录都有按钮。我想在按钮点击时将记录的id发送到我的控制器的方法。我做错了什么?
my_controller.rb
class MyController < ApplicationController
skip_authorization_check
def index
@contacts = Mytable.all
end
def add
byebug
ap params[:id]
end
end
index.html.slim
- debug(params) if Rails.env.development?
body
center
p
|
Contacts.
p.contact-list
- @contacts.each do |a|
.name
p.fname
= a['fname']
.surname
p.lname
= a['lname']
.phone
p.phone
= a['phone']
.rocknroll
p.rock
= link_to 'Add', method: add, class: 'icon', value: a['id ']
的routes.rb
get 'my/' => 'my#index', as: 'my'
get 'my/add'
错误
NameError: undefined local variable or method `add'
答案 0 :(得分:1)
如果您尝试修改现有记录,则应使用PATCH方法。看一下示例here。
我认为这应该是:
= link_to 'Add', method: :patch, class: 'icon', value: a['id ']
在routes.rb
中resources :contacts do #Assuming you have a Contact model
member do
patch 'add' #Or whatever you want to call your method.
end
end
答案 1 :(得分:0)
NameError:未定义的局部变量或方法`add&#39;
我认为错误来自这一行
= link_to 'Add', method: add, class: 'icon', value: a['id ']
没有方法add
。可用的方法有get
,post
,put
等