ruby-on-rails - Rails 渲染方法接受内容:参数?
问题描述
Rails 中的 render 方法有很多默认值,我找不到统一的文档。
为什么会这样:
render 'modal_new', content: @content
工作?我找不到 content: 是一个有效的参数名称。我相信效果类似于本地人:{content:@content}。但不确定如何!
解决方案
这可能会有所帮助: http: //guides.rubyonrails.org/layouts_and_rendering.html
我可能过于简单化了事情,但这是我看到的大部分完成的方式。
在控制器中,如果您的视图名称与同一控制器的操作/方法匹配,您通常可以跳过渲染调用。但是,当您的控制器不匹配时,您需要进行显式渲染调用。例子:
class ContentController < ApplicationController
# no render needed, as the view will be `new`
def new
@content = Content.new
end
def create
@content = Content.new(params)
if(@content.save)
redirect_to @content
else
# because there's an error, I want to render 'new' for the user to re-enter data
render 'new'
end
end
end
在视图中,您通常会调用 render 来合并局部视图。例如,您可以像这样在视图new
和edit
视图之间共享表单字段:
<h1>New Content</h1>
<%= render 'form', content: @content %>
<%= link_to 'back', contents_path %>
在这种情况下,'form'
引用局部变量app/views/content/_form.html.erb
并传入局部变量content: @content
希望这一切都有帮助。
推荐阅读
- c# - 搜索 2 个特定字母后跟 4 个数字 Regex
- c++ - 无法保留字符串和 unique_ptr 的映射向量
- ios - iOS13模拟器上的UIDocumentBrowserViewController错误“无法为url创建urlWrapper”
- python - 使用 Ray 进行基本集群计算和数据管理
- matlab - 嵌入式函数中的持久状态问题
- python - 为什么添加```flask_sockets.worker```到gunicorn会减慢gRPC客户端连接?
- java - 实体 JPA 中的会话范围属性
- html - Webpack 扫描 html 模板以获取资产并处理它们
- java - 面剔除 - 隐藏立方体中所有不是正面的面
- c# - 我怎样才能返回 IQueryable
来自模拟对象的对象?