0

RubyRailsアプリケーションを変更しています-Redmine。部分的なプレビューをレンダリングする関数を変更したい。私の見解では、これは

<%= render :partial => 'documents/form' %>

これがアタッチされている関数を変更する必要があります。

これはどこで探すことができますか?render私が探している機能はありますか?:partialパラメータですか?オペレーターは何をし=>ますか?

RubyとRailsを学ぶことでこれらの問題が解決することは確かですが、現在の状況では、微調整を行うのに十分な知識が必要です。私はそれがコントローラーにないことを知っています。

4

3 に答える 3

3

パーシャル自体のコードを変更したいと思っておりrender、他の回答のようにRails自体の一部であるメソッドを変更するのではなく、そのパーシャルのテンプレートがどこにあるかを知りたいだけだと思います。提案されました。

このrenderメソッドは、Railsに特定のテンプレートをレンダリングするように指示します。おそらくいくつかのパラメーターが渡されます。パーシャルは、個々のウィジェットやページの単一セクションなど、ページのフラグメントのみをレンダリングすることを目的とした一種のテンプレートです。構文render :partial => "documents/form"は、キーワード引数をメソッドに渡すRubyの方法です。documents/form基本的には、部分的なテンプレートとしてレンダリングすることを言っているだけです。render({:partial => "documents/form"})(Rubyでは、これは実際には、メソッドを呼び出し、キーワードが文字列にマップさrenderれるハッシュテーブルを渡すことと同等です)。:partial"documents/form"

したがって、実際にレンダリングされるコードは部分的documents/formsです。_慣例により、パーシャルは接頭辞;が付いたファイルからロードされます。また、デフォルトのERbテンプレート形式を使用している場合は、で終わる可能性があり.html.erbます。すべてのビューコードはに保存されているapp/viewsので、おそらくを探しているでしょうapp/view/documents/_form.html.erb。はい、これは特に明白な慣習ではありませんが、それはあなたにとってRailsです。

詳細については、パーシャルとレンダリングに関するRailsガイドを参照してください。

于 2010-09-16T20:02:53.370 に答える
1

クラスでrenderメソッドを探しています。ActionController::Baseオプションのハッシュをパラメータとして取ります。(ところで、Rubyハッシュを見つけたときにそれを認識できない場合は、レールを「微調整」するのは少し早いかもしれません。最初にRubyチュートリアルをいつでも実行できます)

ご存知のように、モンキーパッチは非常に、非常に悪いです、何とか何とか何とか、今行って足で自分を撃ちます:)

  class ActionController::Base
    def render
      # Now I'm in charge of rendering!
    end
  end
于 2010-09-16T19:45:40.553 に答える
1

あなたがやろうとしている微調整の種類を知ることは役に立つかもしれません。レンダリングのようなコア関数を変更することはおそらく良い考えではなく、確かにはるかに簡単な方法があります。

これをオーバーライドすることで、レンダリングが使用される他のすべての場所に影響を与えます。ヘルパーとして独自のrenderメソッドを作成してみませんか?

# app/helpers/application_helper.rb
module ApplicationHelper
  def render_my_crazy_thing
    return "stuff you want to see: " + render(:partial => 'documents/form')
  end
end

ActionView#renderメソッドは、レンダリングのさまざまなケースをすべて処理し、さまざまなパラメーター(パーシャル、オブジェクトのコレクションなど)をオンにします。:partial => 'documents/form'パラメーターは、ハッシュのルビー構文です(キー=>値)。

于 2010-09-16T19:51:24.360 に答える