Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从参数访问虚拟属性_Ruby On Rails - Fatal编程技术网

Ruby on rails 从参数访问虚拟属性

Ruby on rails 从参数访问虚拟属性,ruby-on-rails,Ruby On Rails,我试图弄清楚如何从params访问虚拟属性 在我的书_controller.rb中,我有: ruby 2.1.5 rails 4.2.1 显然,图书列表是虚拟属性。我将把它保存到图书列表表中 在我的新.html.erb中,我有: wrap_parameters :books_list def product_params params.require(:product).permit(:author_name, :book_name, :books_list) end 我无法访问par

我试图弄清楚如何从params访问虚拟属性

在我的书_controller.rb中,我有:

ruby 2.1.5
rails 4.2.1
显然,图书列表是虚拟属性。我将把它保存到图书列表表中

在我的新.html.erb中,我有:

wrap_parameters :books_list

def product_params
  params.require(:product).permit(:author_name, :book_name, :books_list)
end

我无法访问params中的图书列表。有什么想法吗?

如果
@book
中不存在
图书列表
列,则会引发错误。 rails中没有方法
f.form\u group
,我认为您使用的是定义
form\u group
方法的gem


可能
“books\u list”=>{“{:class=>\“form control\”}”=>“book1\r\n book2”}
参数是由某个引导程序gem生成的。您可以检查html源代码中的check name属性。

否,它不会引发错误,因为它是一个虚拟属性。在Rails 3中,我必须在模型中将其声明为attr_accessible,但由于这是Rails 4,所以我在控制器product_params方法中使用了它。@EastsideDeveloper
product_params
方法只是筛选参数。在删除
f.form\u group
block之后是否会产生错误?我认为form\u group方法不起作用。
<% @title = "Books" %>

<div class="container">
  <div class="row">
    <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
      <%= form_for(@books, html: { class: 'form-horizontal' }) do |f| %>
          <%= f.error_notification %>

          <div class="form-inputs">
            <%= f.form_group :author_name do |f| %>
                <%= f.label :author_name, class: 'control-label col-md-2' %>
                <div class='col-md-8'>
                  <%= f.text_field :author_name, class: 'form-control' %>
                  <%= f.error_messages %>
                </div>
            <% end %>

            <div class="form-inputs">
              <%= f.form_group :book_name do |f| %>
                  <%= f.label :book_name, class: 'control-label col-md-2' %>
                  <div class='col-md-8'>
                    <%= f.text_field :book_name, class: 'form-control' %>
                    <%= f.error_messages %>
                  </div>
              <% end %>

              <%= f.form_group :books_list do |f| %>
                  <%= f.label :books_list, class: 'control-label col-md-2' %>
                  <div class='col-md-8'>
                    <%= f.text_area :books_list, class: 'form-control' %>
                    <%= f.error_messages %>
                  </div>
              <% end %>

          </div>

          <div class="form-actions col-md-offset-2 col-md-10">
            <%= f.submit class: 'btn btn-primary' %>
            <%= link_to "Cancel", test_sets_path, class: 'btn' %>
          </div>
      <% end %>
    </div>
  </div>
</div>
Parameters: {
  "utf8"=>"✓", 
  "authenticity_token"=>"5mxkibQHkwRnzVU31A6pe9uezsmaWeYbCUgU+gUZPLmiAZPnN6si+smdEePU0lfGITh7gmmyChf/bOY+YQQcQg==", 
  "books"=>{"author_name"=>"Some Author", "book_name"=>"Dwan Of The Dead"}, 
  "books_list"=>{"{:class=>\"form-control\"}"=>"book1\r\nbook2"}, 
  "commit"=>"Create Book List"
}