Rails 5アプリケーションでヘルパーを使用する方法を学習しようとしています。Rails 5 - ビューヘルパーの作成方法
私はorg_requestsモデルを持っています。このモデルには、さまざまなステップが取られた日付を保持する属性があります。私は、関連するコントローラアクションが保存されているときにコントローラを使用してこれらの属性を更新しようとしています。
たとえば、私にはapproved_atという属性があります。承認されたアクションが保存されるとき、
@org_request.update_attribute(approved_at: Time.zone.now)
は今、時間を節約する必要があります。私はこのラインを考える
def approved
@org_request = current_user.organisation.org_requests.find(params[:id])
if @org_request.state_machine.transition_to!(:approved)
@org_request.update_attribute(approved_at: Time.zone.now)
flash[:notice] = "You've added this member."
redirect_to org_requests_path
else
flash[:error] = "You're not able to manage this organisation's members"
redirect_to :index
end
end
:私のコントローラでは、私はと呼ばれるアクションがで承認されています。
私の見解では、関連するアクションが行われた時間を表示しようとしています。これを行うには、私が書くしようとしている:
<% @org_requests.each do |org_req| %>
<%= text_for_time_of_status_change(org_req.current_state) %>
私は、持っているヘルパーている:それは勝ったので、私は私のヘルパーので、(のようなorg_requestを与えることができないんだけど
def text_for_time_of_status_change(current_state)
case current_state
when 'requested'
org_request.requested_at.try(:strftime, ' %l:%M %e %B %Y')
when 'approved'
org_request.approved_at.try(:strftime, ' %l:%M %e %B %Y')
when 'rejected'
org_request.rejected_at.try(:strftime, ' %l:%M %e %B %Y')
when 'removed'
org_request.removed_at.try(:strftime, ' %l:%M %e %B %Y')
end
end
を'を受け入れる'):
def text_for_time_of_status_change(org_request.current_state)
これは正しくありません。私はorg_requestの前に@を使用する必要があるかどうかもわかりません(私はそれを試してみるとエラーになります)。
誰かがビューヘルパーを使用するために必要なことを誰でも見ることができますか?
これらの記事:http://6ftdan.com/allyourdev/2015/01/28/rails-helper-methods/は、ヘルパーがプレゼンテーションロジックに使用されることを意図していないようです。たぶんそれは他の種類の行動を意図しているのかもしれない。私は適切な目的のためにヘルパーを使用しようとしているのかどうかはわかりません。
エラーあなたは何を得るのか? – sa77
あなたはどうしていますか?私はヘルパーにorg_requestをそうすることができません。(それは '。'を受け入れないためです) " –