输入/输出值

时间:2017-03-02 17:08:17

标签: ruby-on-rails ruby

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'的方法?

1 个答案:

答案 0 :(得分:0)

首先,DataLab继承ApplicationRecord所以必须有一个这个类的db表。

对于第三个文本字段,您可以为id分配classoptions_for_select属性,并使用JS监控其上的更改,并根据所选选项显示或隐藏文本框。