【问题标题】:How to create dropdown with rails form using bootstrap?如何使用引导程序创建带有导轨形式的下拉菜单?
【发布时间】:2017-09-22 00:44:59
【问题描述】:

下面的表单标签有效。但是,我想添加样式并将 text_field_tag 替换为下拉选择,以便用户可以选择小时。

<%= form_tag("/availability", method: "post") do %>
  <%= label_tag(:available_hour, "Add Availability:") %>
  <%= text_field_tag(:available_hour) %>
  <%= submit_tag("Add") %>
<% end %>

我在使用引导表单创建带有下拉选择的表单时遇到问题。我试过了:

<form method="post" action="/availability">
  <select class="custom-select">
    <% (1..24).to_a.each do |el| %>
      <option value=el><%= el%></option>
    <% end %>
  </select>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>

但它给了我ActionController::InvalidAuthenticityToken 错误。

这是在用户显示视图中完成的,我正在触发的操作来自可用性模型的创建操作。

我找到了一个相关的SO post on bootstrap form,但答案使用的是 PHP。这是他使用的:&lt;form action="results.php" method="POST" role="form" class="form-horizontal"&gt;。

我想如果我能以某种方式指向引导程序来寻找Availability,它应该可以工作。

我如何指出引导表单使用哪个控制器(和方法)?

【问题讨论】:

  • 选项标签的值不应该是&lt;%= el %&gt;吗?所以整行代码应该像&lt;option value=&lt;%= el %&gt; &gt;&lt;%=el%&gt;&lt;/option&gt;

标签: ruby-on-rails twitter-bootstrap forms


【解决方案1】:

您可能忽略了 form_tag 自动包含的 CSRF 值。

尝试添加

#app/views/layouts/application.html.erb
<%= csrf_meta_tags %>

也可以直接添加到表单块中:

<%= hidden_field_tag :authenticity_token, form_authenticity_token %>

【讨论】:

  • 我删除了我的旧评论。我的立场得到纠正,我尝试了hidden_field_tag 并修复了它。我还对代码进行了其他修改,它起作用了。谢谢!
【解决方案2】:

form_tag helper link,可以加option,authenticity_token: false

实际上,rails 已经有 actionview 助手来帮助你创建下拉菜单,这里是 link

你的问题可以试试

<%= form_tag("/availability", method: "post", authenticity_token: false) do %>
  <div class="row form-group">
    <%= f.label "Add Availability:", :class => 'control-label col-sm-3' %>
    <div class="col-sm-5">
      <%= select_hour :available_hour, :class => 'form-control') %>
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
<% end %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    相关资源
    最近更新 更多