我有一个孤立的问题。
我有一个表格,它从几个不同的模型中填充,它会创建链接以跟随每个相应的视图。
我为每个链接创建的代码应该是相同的,但由于某种原因,链接没有显示在“Baseline”下。我检查过:为每个模型创建方法,它们互相模仿,视图中的代码也只是一个副本 - 所以我不知道下一步要去哪里看。我确定问题是create方法失败了,但我不知道在哪里/如何。
以下是我视图中的代码(我也粘贴了FollowUp3Week的代码,因为它有效):
<% if Baseline.where(subject_id: sub.subject_id).first != nil %>
<%= link_to "edit", baseline_path([Baseline.where(subject_id: sub.subject_id).first]) %>
<% else %>
<%= Baseline.create(subject_id: sub.subject_id) %> #I left the equal for the screenshot.
<% end %>
</td>
<td>
<% if FollowUp3Week.where(subject_id: sub.subject_id).first != nil %>
<%= link_to "edit", follow_up3_week_path([FollowUp3Week.where(subject_id: sub.subject_id).first]) %>
<% else %>
<% FollowUp3Week.create(subject_id: sub.subject_id) %>
<% end %>
</td>
这是baselines_controller.rb的创建方法
def create
@baseline = Baseline.new(params[:baseline])
if @baseline.save
flash[:success] = "Baseline added from create method"
redirect_to baselines_url
else
render 'new'
end
end
我还附上了它的样子。如果我从&lt;%=中删除等号,则该单元格将为空白。 an image http://i60.tinypic.com/24q1h0k.png
编辑。我正在从视图中删除所有数据库查询。谢谢您的意见。
答案 0 :(得分:1)
在基线模型上,把这个
def display_name
"#{name}" #whatever you like to show including link
end
答案 1 :(得分:1)
你应该真正从你的视野和模型中获得Baseline.where。视图中的AR范围在Rails中是一个严重的禁忌。
在您的基线模式中,您可以执行以下操作:
def empty_subject(subject_id)
where(subject_id: subject_id).first != nil
end
此外,您似乎正在将数组传递给baseline_path和follow_up3_week_path。 抛弃方括号。