我希望能够使用<%= render' form' %GT;在索引页面上。这是正确的方法吗?它似乎工作,但是,我只是想确保这是正确的方法。
class RemindersController < ApplicationController
...
def index
@reminders = Reminder.all
@reminder = Reminder.new
end
....
答案 0 :(得分:4)
在索引视图中包含'new'/'edit'表单没有任何问题。这不是“正常”的Rails方式,但它会起作用。请记住,一旦您在页面上填写了表单,您仍然需要提交该表单(您一次只能提交一个表单)。这是有点棘手的地方。如果要从同一页面创建和更新提醒,则必须使用具有不同操作的不同表单。 “新”形式如下:
<%= form_for @reminder, url: {controller: "reminders", action: "create"} do |r| %>
<form code goes here>
<%= r.submit %>
<% end %>
和'edit'表单类似于:
<%= @reminders.each do |reminder| %>
<%= form_for reminder, url: {controller: "reminders", action: "update"} do |r| %>
<form code goes here>
<%= r.submit %>
<% end %>
<% end %>
修改强>
如果您希望整个表单位于_form.html.erb部分内,您还可以将URL作为参数传递,如下所示:
<%= render partial: 'form', locals: {path: {controller: "reminders", action: (create/update)}} %>
然后在你的部分内:
<%= form_for @reminder, url: path %>