有没有办法form_for
在 index.html.erb 中显示 new.html.erb div?
我希望能够在不离开主页的情况下添加新条目。也许是部分的?
我通过在控制器的索引模块中创建 @article = Article.create 来让它工作。奇迹般有效。不需要部分。
这种方法对我有用。
在 links_controller.rb 我将@link 添加到索引控制器
def index
@links = Link.all
@link = Link.new
end
在 index.html.erb 我只添加了部分
<%= render 'form' %>
结束了这个屏幕:
您不能渲染模板的一部分,只能渲染整个模板。
如果您对多个模板有相同的部分,则将其放入部分并将部分呈现为模板的一部分。
这是一个非常简单的例子:
_partial.rb:
<%= form_for ... %>
...
<% end %>
新的.html.erb:
render 'partial'
index.html.erb:
render 'partial'
有关局部和渲染的更多信息,您可以在rails guides中阅读。
是的,在这种情况下,部分会更好。你可以有一个“_form.html.erb”的部分。在那个部分只放form_for
内容。让您有一个博客模型,并在索引中显示博客列表。
def index
@blog = Blog.new
#your rest code goes here
end
index.html.erb
<YOUR HTML CONTENT>
<%= render "/blogs/form" %>
_form.html.erb
<%= form_for(@blog) do |f| %>
Your code for the form
<%= end %>
如果你想保留新的action只会显示表单,那么你需要改变action和new.html.erb
def new
@blog = Blog.new
end
在 new.html.erb
<%= render '/blogs/form' %>