【问题标题】:Rails: how to iterate over subset of model's fields to create input field?Rails:如何迭代模型字段的子集以创建输入字段?
【发布时间】:2011-12-11 03:55:02
【问题描述】:

我有一个模型如下:

class User < ActiveRecord::Base
  attr_accessible :name, :email, :twitter, :dribbble, :forrst,
                  :github, :stackoverflow, :linkedin

  # validations, functions, etc.
end

在我看来,我想遍历社交帐户(twitter、dribbble、forrst、github、stackoverflow 和linkedin)为它们创建文本字段,如下所示:

<%= form_for(@user) do |f| %>
  <% %w[twitter dribbble forrst github stackoverflow linkedin].each do |account| %>
    <%= account %> username: <%= f.text_field :account %>
  <% end %>
<% end %>

如何给f.text_field 赋予正确的:account

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby views iteration


    【解决方案1】:

    要保持干燥,请执行以下操作:

    <%= form_for(@user) do |f| %>
      <% User.accessible_attributes.each do |account| %>
        <%= account %> username: <%= f.text_field account.to_sym %>
      <% end %>
    <% end %>
    

    【讨论】:

    • 仅在没有添加可访问属性的情况下,但通常这是一个更好的主意。或者至少在用户上创建一个数组并将其用于表单和 attr_accessible。
    【解决方案2】:

    试试这个:

    <%= f.text_field account.to_sym %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-02
      • 2016-11-04
      • 2015-09-01
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多