1

sinatraのアプリでは、

require 'rubygems'
require 'sinatra'
require 'haml'

get '/new' do
  haml :new
end

get '/edit' do
  haml :edit
end

__END__

@@ layout
%html
  %head
    %title
  %body
  = yield

@@ _form
# partial form

@@ new
%h1 Add a new item
# require partial _form

@@ edit
%h1 Edit an existing item
# require partial _form

@@ _formとで部分的なテンプレート@@ newを要求する方法は@@ edit

ありがとうございました。

4

3 に答える 3

3

これはもう見ましたか: http ://www.sinatrarb.com/faq.html#partials ?

app_helpers.rbを作成し、メインのアプリファイルで必要としました。app_helpersには次のメソッドが含まれています。

  def partial(template, *args)
    options = args.last.is_a?(Hash) ? args.pop : { }
    options.merge!(:layout => false)
    if collection = options.delete(:collection) then
        haml_concat(collection.inject([]) do |buffer, member|
          buffer << haml(template, options.merge(
                                  :layout => false,
                                  :locals => {template.to_sym => member}
                                )
                     )
      end.join("\n"))
    else
      haml_concat(haml(template, options))
    end

終わり

私の見解では、私は以下を使用します:

- partial :file
于 2010-02-24T14:17:40.707 に答える
1

Sinatra-Partialプラグインをお勧めします:https ://github.com/yb66/Sinatra-Partial

コードでは、:install gem'geminstallsinatra-partial'が必要です。

コードにpartialが必要です:'require' sinatra / partial '

次のようにコードを変更します。

@@ new
%h1 Add a new item
= partial '_form'

@@ edit
%h1 Edit an existing item
= partial '_form'

_formパーシャルにいくつかのパラメーターを追加する場合は、ローカルを使用してそれを渡すことができます。

= partial '_form', locals: { param: @param }
于 2013-11-18T21:06:02.547 に答える
1

sinatraを使用している場合は、次のような組み込みのhamlメソッドを使用してみませんか。

= haml :partial_form, layout: false

Railsの場合:

= render 'partial_form'
于 2014-07-13T20:43:49.327 に答える