Rails初心者はこちら。
単一のパーシャルを使用して、コントローラーに関係なく、すべてのビューにCRUDボタンを作成したいと思います。これが私がこれまで取り組んできたものです。私のコントローラーには次のものがあります。
information_controller.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
edit.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」が必要です。トリックはありますか?