ruby-on-rails - 带有 capybara 的嵌套形式

标签 ruby-on-rails ruby-on-rails-4 rspec capybara

我有一个帖子模型

    accepts_nested_attributes_for :views, :allow_destroy => :true,
      :reject_if => proc { |attrs| attrs.all? { |k, v| v.blank? } }

和一个 View 模型
    belongs_to :post, inverse_of: :views

在帖子/_forms.html.erb
    <%= post_form.fields_for :views do |builder| %>
    <%= render 'view_fields', f: builder %>
    <% end %>
    <%= link_to_add_fields "Add new View", post_form, :views %>

在帖子/_view_fields.html.erb
    <fieldset>
    <%= f.label :name, "View name:" %>
    <%= f.text_field :name %>
    <%= f.hidden_field :_destroy %>
    <%= link_to "remove", '#', class: "remove_fields" %>
    </fieldset>

现在在我的 rspec 中,我想用一些值填充 f.text_field。

尝试了以下方法:
  fill_in 'post_views_first_name', with: "I support"
  fill_in 'post_view_name', with: "I support"
  fill_in 'post_views_name', with: "I support"

他们都没有工作。如何在此字段上调用 ​​fill_in?

最佳答案

我正在使用 capybara 截图 gem (我强烈建议!)。我有一个嵌套表单,其中包含属于用户的项目。它接受
fill_in 'user_projects_attributes_0_name', with: "Name"
所以对你来说,我建议你一定要捕获 gem 。但也试试这个:
fill_in 'post_views_attributes_0_first_name', with: "I support"

关于ruby-on-rails - 带有 capybara 的嵌套形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23878867/

相关文章:

javascript - history.back(-1) 没有刷新最后一页?

ruby-on-rails - Rails、RSpec 和 Factory Girl : how to connect to 2 databases

ruby-on-rails - 从 Docker Hub 拉取 dockerized rails 应用程序时无法启动它

ruby-on-rails - 使用全屏/yt 检索 Youtube 评论

ruby-on-rails - PostGIS 错误 - PG::InternalError: 错误: 无法加载库

ruby-on-rails - 改革:干式验证匹配器

ruby - Rubocop 25 行 block 大小和 RSpec 测试

ruby-on-rails - 方法错误: undefined method `sign_in' for RSpec

ruby-on-rails - rails 机架保护用法,错误 "you need to set up a session middleware *before* Rack::Protection::SessionHijacking"

mysql - 渲染 View 时 Rails 连接到错误的端口