A有一个index.html.erb
页面,其中包含两个选项("第一个","第二个")和三个不同的文本字段,其中可能会输入{{1} }值。仅当" Second"时才需要a, b, c
选项已被选中。
然后我必须执行一个方法,具体取决于选择的选项:如果它是" First",我给它c
并获得一个结果,如果它是& #34;第二个",然后给a, b
并继续进行另一种方法。
我已经拥有:
应用程序/视图/欢迎/ index.html.erb
a, b, c
应用程序/控制器/ welcome_controller.rb
<html>
<head>
<title>Welcome</title>
<%= stylesheet_link_tag 'application' %>
<%= csrf_meta_tags %>
</head>
<body>
<div class="mainbox">
<%= form_for(@data_lab) do |f| %>
<%= options_for_select(disabled: "Select an option", ["First", "Second"]) %>
<%= text_field(:a_value, class: "text_in") %>
<%= text_field(:b_value, class: "text_in") %>
<!-- Appears only when "Second" option is selected: -->
<%= text_field(:c_value, class: "text_in") %>
<%= f.submit %>
<% end %>
</div>
</body>
应用程序/模型/关切/ DataLab.rb
class WelcomeController < ApplicationController
include WelcomeHelper
require "#{Rails.root}/app/models/concerns/DataLab.rb"
def index; end
def welcome
@data_lab = DataLab.new
@data_lab = params(data_params)
end
end
应用程序/助手/ welcome_helper.rb
class DataLab < ApplicationRecord
attr_accessor :a_value, :b_value, :c_value
end
我已经错过了module WelcomeHelper
def data_params
params_require(:data).permit(:a_value, :b_value, :c_value)
end
end
错误,但是,我想,我需要为我的data_lab类创建一个数据库。
如何正确执行输入/输出?如何处理取决于Could not find table 'data_labs'
的方法?
答案 0 :(得分:0)
首先,DataLab
继承ApplicationRecord
所以必须有一个这个类的db表。
对于第三个文本字段,您可以为id
分配class
或options_for_select
属性,并使用JS监控其上的更改,并根据所选选项显示或隐藏文本框。