我有一个表单partial需要呈现remote_form_for或form_for,具体取决于从调用者视图传递给它的局部变量的值。它看起来像......
<% if ajax %>
<% remote_form_for @search, :url => {:action => :search_set, :controller => :searches, :stype => stype} do |f| %>
<% else %>
<% form_for @search, :url => {:action => :search_set, :controller => :searches, :stype => stype} do |f| %>
<% end %>
显然,我在&lt;%else%&gt;附近遇到语法错误,因为它期望“结束”。
这样做的正确方法是什么?
答案 0 :(得分:2)
你可以制作一个辅助方法
def form_or_remote_form_for object, *opts, &proc
if ajax
remote_form_for object, *opts, &proc
else
form_for object, *opts, &proc
end
end
然后在你的观点中它只是
<% form_or_remote_form_for @search, :url => {:action => :search_set, :controller => :searches, :stype => stype} do |f| %>