2016-04-08 9 views
0

での使用には、私は2つのモデル、組織や嗜好を持っています。Railsの4 - ヘルパーメソッド - 私はRailsの4</p> <p>でのヘルパーメソッドを使用する方法を把握しようとしているビュー

団体は次のとおりです。

Organisation has_one :preference 
Preference belongs_to :organisation 

私の好みのテーブルでは、私が呼ばれる属性があります:私の組織ビューで

をprior_notice_requiredを、私は組織の好みを表示しようとしています。私の組織のビューフォルダには、プリファレンスという部分があります。私OrganisationsHelper.rbで

は、私はこれを試してみた:

<%= @organisation.preference.prior_notice_required(publicity_notice_required) %> 
<%= publicity_notice_required(@organisation.preference) %> 

<%= publicity_notice_required(@organisation.preference.prior_notice_required) %> 

私はどのように把握することはできません。

は私の組織の好みで
module OrganisationsHelper 

    def publicity_notice_required 
     if @organisation.preference.prior_notice_required == true 
      'Prior notice of publicity is required' 
     else 
      'Prior notice of publicity is not required' 
     end 
    end 

部分、私は、これらのそれぞれを試してみてくださいこれを得るために。誰かが私が間違っているのを見るためにヘルパーと何か経験がありますか?

+0

このコードでは何が起こっていますか?エラーが出ていますか?もしそうなら、どんなエラー?できるだけ多くの情報を提供してください。 – sixty4bit

+0

'<%= publicity_notice_required%>'を試してください。パラメータを取らずにStringを返すメソッドを定義したので、そのように呼び出して使用します。 –

答えて

1

ビューで<%= publicity_notice_required %>を呼び出すのと同じくらい簡単です。

Railsヘルパーは、アプリケーション全体に含まれるモジュールです。これは人生を簡単にしますが、カプセル化については、問題の良い分離である&についてはいくつかの欠点もあります。

http://nicksda.apotomo.de/2011/10/rails-misapprehensions-helpers-are-shit/この記事では、Railsヘルパーを叩いている間に、説明をうまくやっていますか?

0

これが正しいかどうかはわかりませんが、うまくいくようです。

私はに私の見解を変更します。私は(組織)は括弧の中またはそのが実際に意味場合にする必要がある理由はよく分からない

def publicity_notice_required(organisation) 
     if @organisation.preference.prior_notice_required == true 
      'Prior notice of publicity is required' 
     else 
      'Prior notice of publicity is not required' 
     end 
    end 

<%= publicity_notice_required(@organisation.preference) %> 

と私のヘルパーに嗜好も含めてください。これが誰かを助けることを望みます。

関連する問題