我希望能够在索引页面上使用 <%= render 'form' %> 。这是正确的方法吗?它似乎有效,但是,我只想确保这是执行此操作的正确方法。
class RemindersController < ApplicationController
...
def index
@reminders = Reminder.all
@reminder = Reminder.new
end
....
Run Code Online (Sandbox Code Playgroud)
在索引视图中包含“新”/“编辑”表单没有任何问题。这不是“正常”的 Rails 方式,但它会起作用。请记住,在页面上填写表格后,您仍然需要提交该表格(一次只能提交一份)。这就是有点棘手的地方。如果您想从同一页面创建和更新提醒,则必须使用具有不同操作的不同表单。“新”形式如下所示:
<%= form_for @reminder, url: {controller: "reminders", action: "create"} do |r| %>
<form code goes here>
<%= r.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
“编辑”表单将类似于:
<%= @reminders.each do |reminder| %>
<%= form_for reminder, url: {controller: "reminders", action: "update"} do |r| %>
<form code goes here>
<%= r.submit %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
编辑
如果您希望将整个表单包含在 _form.html.erb 部分中,您还可以传入 url 作为参数,如下所示:
<%= render partial: 'form', locals: {path: {controller: "reminders", action: (create/update)}} %>
Run Code Online (Sandbox Code Playgroud)
然后在你的部分里面:
<%= form_for @reminder, url: path %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4286 次 |
| 最近记录: |