1

免責事項: 私は Rails n00b です。私は、やりたいことをしていない単純なヘルパー関数で遊んでいます。

  • いくつかのテキスト フィールド (名前、住所など) を持つ「webform」というモデルがあります。
  • ヘルパー関数を使用して if ステートメントをテストしようとしています (つまり、'is the :address == '10')
  • これがヘルパー関数です

    def webforms_helper
      if :address == 10
        print "Address is 10"
      else
        print "Address is not 10"
      end   
    end
    
  • 私の「ショー」ビューでは、ヘルパー関数を組み込みました<%= webforms_helper %>

  • Web アプリをロードしましたが、エラーは発生しませんでしたが、'Address is 10' または 'Address is not 10' は出力されません。
  • print の代わりに puts (およびコンソールのチェック) を使用しても成功しませんでした

  • 何かご意見は?初歩的な質問ですみません(;_;)

4

3 に答える 3

2

まず、適切なヘルパーは次のようになります。

module ApplicationHelper
  def myformchecker(ahash)
     if ahash[:address] == '10'
        return 'Address is 10'
     end
  end
end

次に、コントローラーで:

class ApplicationController < ActionController::Base
  helper: application
  ...
end

次に、あなたの見解で:

<%= myformchecker(params) %>

したがって、フォームの送信に応答してビューがレンダリングされ、フォームに次のものが含まれているとします。

<%= text_field_tag :address %>

ユーザーがフォームに入力し、アドレスとして文字列「10」を入力すると、ビューに「アドレスは 10」が生成されます。

于 2012-06-15T14:31:25.047 に答える
1

さて、あなたの運動はあまり明確ではありませんが、このようなもの...

def webforms_helper 
  if :address == 10 
    print "Address is 10" 
  else 
    print "Address is not 10" 
  end
end

1つの理由でRailsビューに何も出力しません.putsとprintメソッドを使用しています.これら2つはコンソールに出力されます. 文字列自体を返す必要があります。このようにしてください...

def webforms_helper 
  if :address == 10 
    "Address is 10" 
  else 
    "Address is not 10" 
  end
end

簡単なデモを行っていることは承知していますが、ヘルパーに引数を渡すことをお勧めします。それはあなたが99%の時間行うことです..

def webforms_helper(address)
  if address == 10 
    #return something meaningful as string to the view
  else 
    #return something meaningful as string to the view too.
  end
end
于 2012-06-15T14:21:01.513 に答える
0

ヘルパーが判断できるように、ヘルパーに情報を渡す必要があります。

# app/views/webforms/show.html.erb
<%= webforms_helper(address) %>

# app/helpers/webform_helper.rb
module WebformHelper
  def webforms_helper(address)
    if address == 10
      "Address is 10"
    else
      "Address is not 10"
    end
  end
end

また、Railsを使い始めたばかりの場合は、良い本 ( Rails を使用したアジャイル Web 開発) またはチュートリアル ( Ruby on Rails チュートリアル)を見つけることを心からお勧めします。

于 2012-06-15T14:17:04.420 に答える