Я очень свежее в ROR и в моем приложении у меня есть role
модели. Теперь на этой странице индекса я разместил раскрывающийся список сверху, чтобы пользователь мог выбрать конкретную роль и выполнить действие соответственно, просто выбрав опцию списка dopdown и щелкнув, чтобы отправить, что действие должно быть выполнено. Я не хочу делать это по link_to
Кто-нибудь может объяснить мне, какие шаги мне нужно выполнить. Я знаю, что это может быть выполнено JQuery, но я также плохой в этом.
для вашего легкого понимания Я загрузил снимок экрана
Я видел этот Rubyforum, qaru.site/questions/6205107/... но все еще не могу понять. Я ценю, если кто-нибудь сможет объяснить меня подробно шаг за шагом.. или предоставить мне лучший и легкий ресурс. Я не могу понять, с чего начать?
Некоторый код:
index.html.haml
.user_details.clearfix
= form_for :role do |f|
%h3 Listing Roles
.selectbox.blueselect.frd
= f.select(:name, [['Delete', 'delete'], ['Change Status', 'changestatus']],{:include_blank=> 'Select Action'},{:class=>'select1'})
= f.submit 'Submit', :class=>'blue_btn frd'
%label.actionlabel Actions
#accordion.tablerow.clearfix
%table.tablelist{border: "0", cellpadding: "0", cellspacing: "0", width: "100%"}
%tr
%th{align: "left", valign: "middle"}
%th{align: "left", valign: "middle"} Sr. No.
%th{align: "left", valign: "middle"} Name
%th{align: "left", valign: "middle"} Description
%th{align: "left", valign: "middle"} Is Active?
%th{align: "left", valign: "middle"} Access Module
%th{align: "left", valign: "middle"}
%th{align: "left", valign: "middle"}
- @count=0
- @roles.each do |role|
%tr
%td{align: "left", valign: "middle"}
%input.checkbox{type: "checkbox", :id=>'chkbox', :value=> role.id, :onclick=>"validate(this.value)"}
%td{align: "left", valign: "middle"}= @count += 1
%td{align: "left", valign: "middle"}= role.name
%td{align: "left", valign: "middle"}= role.description
%td{align: "left", valign: "middle"}= role.isactive
%td{align: "left", valign: "middle"}= role.access_module_roles.map { |amr| amr.access_module.name }.join(", ")
%td{align: "left", valign: "middle"}= link_to 'Show', role
%td{align: "left", valign: "middle"}= link_to 'Edit', edit_role_path(role)
%td{align: "left", valign: "middle"}= link_to 'Delete', role_path(role), :method=> :delete
%br
= link_to 'New Role', new_role_path, :class=>'blue_btn'
Любой человек нуждается в более подробной информации, после чего я могу обновить.. хочу выполнить действие delete
Без использования javascript вы не можете изменить действие из выбранного. Действие определяется URL, который называется по форме представления, которое, в свою очередь, указанная в action
атрибуте формы. Все, что может сделать выбор или любой другой ввод формы, заключается в изменении параметров, которые были отправлены на этот URL-адрес.
Однако это не означает, что все потеряно: это означает, что вам либо нужно
a) измените атрибут action
формы с помощью javascript при выборе изменений
б) измените свой код контроллера так, чтобы форма отправилась на один фиксированный URL-адрес, но действие в контроллере делает разные вещи в зависимости от параметров. Что-то вроде
#in the controller
@foo = Foo.find(params[:id])
if params[:foo_action] == "destroy"
@foo.destroy
elsif params[:foo_action] == "update"
@foo.update_attributes(:params[:foo])
...etc