在我的Ruby on Rails项目中,我有一个Country模型类和一个Proposal模型类。每个国家都有很多提案,每个提案都属于一个国家。每个提案都有30个问题(属性)。在我的视图页面中,我想显示一个国家/地区的每个提案的每个问题。
到目前为止,我有:
<div class="relative">
<% @country.proposals.each do |proposal| %>
<h2>Food and Medicine:</h2><br>
<div class="relative2">
<p>List of prohibited drugs:</p>
<p><% proposal.q1 %></p>
</div>
<h2>Liquids and Gels:</h2><br>
<div class="relative2">
<p>List of prohibited liquids/gels:</p>
<p><% proposal.q2 %></p>
...
...
<% end %>
</div>
只要国家/地区有与之相关的提案,标题就会显示正常。但是,提案属性不会出现在我放置它们的位置(在标题之间)。我可以确认属性不是空的。
提案表:
create_table "proposals", force: :cascade do |t|
t.string "status", default: "Pending"
t.text "q1"
t.text "q2"
...
...
t.text "q29"
t.text "q30"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "country_id"
end
答案 0 :(得分:1)
你忘记了一个等号。你应该这样做:
<p><%= @proposals_q2 %></p>
而不是:
<p><% @proposals_q2 %></p>
此外,您应该从循环中删除等号。
<% @country.proposals.each do |proposals| %>
而不是:
<%= @country.proposals.each do |proposals| %>
在ERB中,<%= expression %>
用于将计算的表达式注入DOM。 <% expression %>
用于评估表达式而不对其执行任何操作。您不希望在第一行评估@country.proposals.each {...}
的结果并将其注入DOM,因此您希望不带等号,而你做希望将每个实例变量注入到DOM中,因此你希望它们与等号。
顺便说一句,我假设@proposals_q1
,@proposals_q2
等在控制器操作中初始化。如果您将q1
,q2
等作为Proposal
模型上的属性,那么您应该执行以下操作,而不是使用@proposals_q1
:
<div class="relative">
<% @country.proposals.each do |proposal| %>
<h2>Food and Medicine:</h2><br>
<div class="relative2">
<p>List of prohibited drugs:</p>
<p><%= proposal.q1 %></p>
</div>
<h2>Liquids and Gels:</h2><br>
<div class="relative2">
<p>List of prohibited liquids/gels:</p>
<p><%= proposal.q2 %></p>
...
...
<% end %>
</div>
答案 1 :(得分:0)
您向后使用<%=
和<%
。 <%=
将内容输出到页面。 <%
运行Ruby代码,但不输出任何内容。
目前,您输出的结果为<%= @country.proposals.each
,而您不输出<% @proposals_q1
。这意味着,在循环内部,行<% @proposals_q1 %>
完全没有效果,但在整个循环完成后,<%= @country.proposals.each...
会输出proposals
。
您需要使用<%= @proposals_q1 %>
在循环中写入的标记内输出该变量的内容,并且需要使用<% @country.proposals.each... %>
,因为使用的<%=
没有生成有用的输出object1.position.copy(object2.matrixWorld.getPosition());
。
答案 2 :(得分:-1)
将此
&lt;%@ proposals_q1%&gt;
“更改为:”&lt;%= @ proposals_q1%&gt;
“