verwenden Ich versuche, herauszufinden, wie man eine Hilfsmethode aus einer Ansicht für den Zugriff auf in einem zugeordneten GerüstRails 4 - Wie Helfer Text in einer zugehörigen Teil
I Modelle genannt Projekt und Ethic habe. Die Verbände sind:
Project has_many :ethics
Ethic belongs_to :project
In meiner Ethik Helfern, ich habe:
module EthicsHelper
def text_for_subcategory(category)
if category == 'Risk of harm'
[ "Physical Harm", "Psychological distress or discomfort", "Social disadvantage", "Harm to participants", "Financial status", "Privacy"]
elsif category == 'Informed consent'
["Explanation of research", "Explanation of participant's role in research"]
elsif category == 'Anonymity and Confidentiality'
["Remove identifiers", "Use proxies", "Disclosure for limited purposes"]
elsif category == 'Deceptive practices'
["Feasibility"]
else category == 'Right to withdraw'
["Right to withdraw from participation in the project"]
end
end
end
dann in meinen Projekten Ordner anzuzeigen, Ich habe einen Teil genannt _ethics.html.erb, die hat:
<% @project.ethics.each do | project_ethics_issue | %>
<strong>ETHICS CONSIDERATION: <%= project_ethics_issue.text_for_subcategory(@category) %></strong>
<%= project_ethics_issue.considerations %>
<% end %>
In meinen Projekten Controller habe ich versucht:
include EthicsHelper
Als ich dies versuchen, ich erhalte eine Fehlermeldung, die sagt:
undefined method `text_for_subcategory' for #<Ethic:0x007fedc57b7b58>
Kann jemand sehen, wo ich falsch gegangen?
danke @Khanh - das funktionierte, um den Inhalt des Helfers anzuzeigen, aber es zeigt den Text innerhalb [""]. Ich kann diese Tags nicht aus dem Helper entfernen, da ich dann ein Fehler beim Anzeigen des Formulars erhalte. – Mel
Weil du deinen Text in 'array' legst, also wenn du Text als' Erklärung der Forschung, Erklärung der Rolle des Teilnehmers in der Forschung' anzeigen willst, schreibst du nur als: 'text_for_subcategory (@category) .join (", ")' –
es gibt nur eine Sache im Array. Der Inhalt des Arrays wird ordnungsgemäß in der Form angezeigt, aber in der Show teilweise zeigt es innerhalb [""]. Ich möchte nur den Inhalt des ausgewählten Elements des Arrays anzeigen (was in diesem Fall das einzige Ding im Array ist. Ich möchte nicht, dass [""] angezeigt wird. – Mel