ruby-on-rails - Rails ViewComponent,无法通过渲染传递对象或字符串
问题描述
我正在尝试使用ViewComponent gem,但似乎无法正确使用它,他们的示例组件可以正常工作并传递字符串,但是通过我自己的我没有运气。
文件夹结构:
- app
-- components
--- post_component.rb
--- post_component.html.erb
内posts_controller.rb
:
def index
@post = "This is a post"
end
在posts/index.html.erb
我有:
<%= render(PostComponent.new(post: @post)) %>
内post_component.html.erb
:
<p><%= @post %></p>
最后,在post_component.rb
:
class PostComponent < ViewComponent::Base
def initalize(post: )
@post = post
end
end
然而,这不会导致任何渲染。以前我试图通过执行以下操作来渲染整个对象:
@posts = Post.all
@posts.each do | p |
<%= render(PostComponent.new(post: p)) %>
end
然后尝试通过内部分配的关联显示信息,post_component.rb
但这不起作用,所以我尝试了上述方法。
编辑提一下,以上两者的输出都是nil
.
非常感谢任何帮助/建议,谢谢。
解决方案
推荐阅读
- weblogic - weblogic server 12.2.1.3.0 安装后的配置向导。错误:-命令的语法不正确
- html - img上不透明的css关键帧动画不起作用
- python - 如何在 ansible 操作插件之间共享代码
- excel - 如何使用条件格式检查两个工作表之间的更改?
- java - 文件名中没有版本的 Maven 依赖项
- python - tf.data.Dataset 的一个热编码标签
- ios - 如何在 Swift 中将默认文本添加到 TableView
- macos - iTerm2 输入命令时添加额外字符
- python-3.x - 在产生输出的列旁边打印结果
- sql-server - SQL SERVER 中全局 SQL 临时表的条件重用