如何配置stimulus-library实现Trix编辑器禁用文件上传的表单语法?
解决方案
要生成包含data-controller="trix-modifier"和data-no-file-uploads的trix-editor标签,你需要修正Rails表单helper的data哈希写法:
正确代码
<%= form.rich_text_area "translatable_content_#{Mobility.normalize_locale(user_idioma.idioma.code.to_s)}", rows: 20, data: { controller: 'trix-modifier', no_file_uploads: true } %>
错误原因说明
- 拆分两个
data:参数的写法无效,Rails会仅保留最后一个data哈希,导致第一个data-controller被覆盖。 - 直接在
data哈希中写'no-file-uploads'作为键但不赋值,不符合Ruby哈希语法规范,Rails无法正确解析。
原理
Rails表单helper会自动将data哈希中的蛇形符号键(如no_file_uploads)转换为短横线分隔的HTML属性名(data-no-file-uploads);当值设为true时,会渲染成无值的HTML属性格式,正好匹配需求。
你也可以直接使用短横线格式的字符串键,效果完全一致:
<%= form.rich_text_area "translatable_content_#{Mobility.normalize_locale(user_idioma.idioma.code.to_s)}", rows: 20, data: { controller: 'trix-modifier', 'no-file-uploads': true } %>
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

