ruby-on-rails - 使用本地表单生成器变量从控制器渲染部分?
问题描述
我有一个要添加动态别名的标签页面。页面上有一个添加新别名的链接。我希望此链接重新加载我拥有的部分,form.fields_for
以显示所有当前别名,以及下一个新的空白框。
当我第一次加载编辑标签页面时,一切正常。当我点击 New Alias 链接时,我的 AJAX 请求失败并显示以下消息。(undefined local variable or method form' for #<#<Class:0x007fda303623a8>:0x007fda2c6c0e68>
. 这是因为我通过控制器中的自定义操作加载的部分不了解我的表单的上下文。
我在这里缺少什么,如何让 Alias 部分通过 AJAX 工作?
意见/标签/_form.html.erb
<%= form_with model: @tag, local: true do |form| %>
<%= render 'alias', :form => form %>
<%= link_to 'New Alias', {controller: :tags, action: :build_alias}, remote: true %>
<% end %>
意见/标签/_alias.html.erb
<%= form.fields_for :tag_aliases do |alias_fields| %>
<%= alias_fields.text_field :alias_name %>
<% end %>
控制器/tags_controller.rb
def build_alias
render partial: 'alias'
end
当我的控制器不知道是什么时,我如何传递form
给我的部分输入?build_alias
form
是form.fields_for
错误的方法吗?
解决方案
推荐阅读
- javascript - 从 SQL 数据库中检索数据并为现有客户填写 Web 表单上的字段
- amazon-web-services - 如何在 EMR zeppelin 上安装 boto3
- c# - 解决多个标准框架的 NuGet 包 - 可空值问题
- sql - 创建 Clickhouse 数据库并使用 R 加载大量表
- c# - 有没有办法确定 NuGet 包所针对的 .Netstandard 版本?
- c# - 使用 EF 核心中的 Entry() 方法更新数据
- django - 不能再在 Django 中删除数据库并重新应用迁移?
- php - “php lint”用于特定且稍早版本的 PHP?
- python - dataframe.plot.bar() 似乎没有将周期索引正确地处理为“x”
- git - Git AdvertisementPushOptions 配置已启用,但推送选项不起作用。我错过了什么吗?