相关疑难解决方法(0)

Ruby on Rails:提交表单中的数组

我有一个具有Array属性的模型.从表单提交中填充该属性的正确方法是什么?

我知道有一个带有字段的表单输入,其名称包括括号,从输入创建一个哈希.我应该只是拿着它并在控制器中踩过它来按摩它成阵列吗?

让它不那么抽象的例子:

class Article
  serialize :links, Array
end
Run Code Online (Sandbox Code Playgroud)

links变量采用URL数组的形式,即 [["http://www.google.com"], ["http://stackoverflow.com"]]

当我在表单中使用类似下面的内容时,会创建一个哈希:

<%= hidden_field_tag "article[links][#{url}]", :track, :value => nil %>
Run Code Online (Sandbox Code Playgroud)

结果哈希看起来像这样:

"links" => {"http://www.google.com" => "", "http://stackoverflow.com" => ""}
Run Code Online (Sandbox Code Playgroud)

如果我没有在链接名称中包含url,则其他值会相互冲突:

<%= hidden_field_tag "article[links]", :track, :value => url %>
Run Code Online (Sandbox Code Playgroud)

结果如下: "links" => "http://stackoverflow.com"

forms arrays hash ruby-on-rails

66
推荐指数
5
解决办法
8万
查看次数

选择预先选择了多个值的标记 - 在数据库中手动插入值

我有一个问题,我没有正确规划我的数据库,所以我总是需要使用'替代'.

我想在select_tag中预先选择多个值.但我在表空缺中"手动"添加空缺.我的控制器:

def create
  @hr_curriculum_generic = HrCurriculumGeneric.new(params[:hr_curriculum_generic])

  # Tabela CandidatosxVagas
  unless params[:vacancy_ids].nil?
    @vacancies_ids = params[:vacancy_ids]
Run Code Online (Sandbox Code Playgroud)

- 我的表格:

  @vacancies_ids.each do |vacancy_id|
    # Armazena os id do curriculum, vaga e do cargo na tabela CandidatosxVagas
    @candidates_vacancies = CandidatesVacancy.new 
    <% @vacancies = Vacancy.all %>
    <%= select_tag "vacancy_ids[]", options_from_collection_for_select(Vacancy.all, "id", "title"), :multiple => true, :id => "vacancy_ids", :class => "form-control" %>
Run Code Online (Sandbox Code Playgroud)

.....

它的工作原理,但是当我点击编辑时,字段不会被预选.

有人通过了这样的麻烦,可以帮助我吗?

ruby ruby-on-rails ruby-on-rails-3.1 ruby-on-rails-3.2

6
推荐指数
1
解决办法
5034
查看次数