rails自定义html元素表单
我是Rails新手,我在网络和书籍中搜索过,但在使用Rails时,我找不到如何制作自定义表单。。 所发生的事情是,我习惯于编写自己的HTML标记,并且我可以适应它。我不喜欢使用像JSF(来自JAVA)这样的libs为我编写html组件,我也不希望rails为我编写它,除了像rails自定义html元素表单,html,ruby-on-rails,ruby,custom-component,Html,Ruby On Rails,Ruby,Custom Component,我是Rails新手,我在网络和书籍中搜索过,但在使用Rails时,我找不到如何制作自定义表单。。 所发生的事情是,我习惯于编写自己的HTML标记,并且我可以适应它。我不喜欢使用像JSF(来自JAVA)这样的libs为我编写html组件,我也不希望rails为我编写它,除了像 text_field(:post, :title, :size => 20) # => <input type="text" id="post_title" name="post[title]" size=
text_field(:post, :title, :size => 20)
# => <input type="text" id="post_title" name="post[title]" size="20" value="#{@post.title}" />
text\u字段(:post,:title,:size=>20)
# =>
所以。。我该怎么做。。例如:我想自己写
<input type="text" class="myclass" data="mydata" name="how-to-get-the-attribute-name-with-rails" value="how-to-get-value-with-rails" />
我该怎么做呢?您可以简单地在Rails表单中编写html,因此
<input type="text" class="myclass" data="mydata" name="how-to-get-the-attribute-name-with-rails" value="how-to-get-value-with-rails" />
是完全有效的,但是请注意,您应该以正确的方式使用名称和id来自动将它们绑定到后端控制器
毕竟,text\u字段(:post,:title,:size=>20)
所做的是将参数转换为纯HTML(我们在Rails中称之为helper方法)
阅读formhelper选项(使用Helper将保持代码的整洁)。如果您想对正在创建的html进行更多控制,还可以使用
内容\u标记
content_tag :input, "label_name", class: "myclass", data: "mydata", name: "how-to-get-the-attribute-name-with-rails", value: "how-to-get-value-with-rails"
您可以为
:input
补充任何html元素标记。因此,如果您想要一个div,请使用:div
等。正如您上面所写的,rails中任何表单字段的名称都采用以下格式
name = 'post[name]' i.e. model_name[attribute_name]
因此,您的params散列将包含:post=>{:name=>value}
,这允许您使用大规模赋值。但是如果您想从表单中获取一些额外的参数,可以直接将它们包含在表单中,并根据需要为它们命名。它将在您的params散列中可用
使用
value=
我不知道你是想知道这件事还是别的什么。如果您需要更多帮助,请告诉我。谢谢@sameera207,但正确获取这些名称和ID正是我想要的,但我想通过rails调用一些东西来实现这一点。。这是一种方式吗?@thiagoh,实际上在rails助手方法中,几乎所有东西都可以配置。如果我答对了你的问题,我想“joofsh”已经给了你答案,如果有帮助,请告诉我们:)