Rails 新手在这里。
无论控制器如何,我想使用单个部分在所有视图上创建我的 CRUD 按钮。所以这就是我到目前为止所做的工作。在我的控制器中,我有:
信息控制器.rb
class InformationController < ApplicationController
before_filter :set
def set
#Set Paths
@new_path = new_information_path
@edit_path = edit_information_path
end
#Then normal index, show, etc definitions follows
end
我将以索引和编辑页面为例。
index.html.haml
-@operation = "index" #To let partial know what page it is in
-render 'form', operation: @operation
编辑.html.haml
-@operation = "edit"
- render 'form', operation: @operation
然后,在我的部分形式中,我有:
_form.html.haml
.form-inputs
.container-fluid
.span8
.simple_form_for @foo do |f|
=f.input :title, as: :string
=render 'controls', f: f, operation: @operation
在我的控件表单中,无论控制器如何,我都只显示 CRUD 按钮,我有:
_controls.html.haml
-if(operation=="new")
link_to "Create", @new_path, class: "btn btn-success"
-else
-if(operation=="edit")
=f.submit "Update"
-else
.span3
%table
%tr
%td=link_to "Edit", @edit_path(f), class: "btn btn-primary"
%td=link_to "Delete", f, confirm: "Are you sure", method: :delete, class: "btn btn-danger"
所以这适用于加载“编辑、删除和创建”按钮的索引页面。但我不知道如何正确地将控制器中的edit_information_path 分配给@edit_path,因为这需要一个编辑参数'f'。
分配@new_path = new_information_path 有效,但@edit_path 需要'f'。有什么技巧吗?