【问题标题】:Rails 4 - Passing user input back to viewRails 4 - 将用户输入传递回视图
【发布时间】:2015-09-13 18:31:12
【问题描述】:

Rails 新手在这里寻求一些建议。

我有一个带有表单和提交按钮的基本页面。当用户点击提交按钮时,我想在同一页面上显示用户输入的内容以及一些附加文本。例如,如果用户输入“jack”,那么在表单下方我想要字符串“hello jack!”要显示。

如何将视图中提交的内容传递给控制器​​,附加一些文本,然后显示回页面?注意:我不想将输入存储在数据库中。

这是我到目前为止所得到的,任何指导都会很棒!

Routes.rb

Rails.application.routes.draw do
get 'home' => 'pages#index'
end

我的控制器

class PagesController < ApplicationController
def home
end
end

我的看法

<h1> Enter some text </h1>
<%= form_tag("/home", method: "get") do %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Submit") %>
<% end %>

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    这应该可行:

    controller.rb:

    class PagesController < ApplicationController
      def home
        if params[:q].present?
          @input = "hello #{params[:q]}!" 
        end
      end
    end
    

    表格:

    <%= form_tag("/home", method: "get") do %>
      <%= text_field_tag(:q, @input) %>
      <%= submit_tag("Submit") %>
    

    How params works in Rails

    【讨论】:

    • 感谢@Зелёный 使用该表单代码我收到错误 /Users/Jack/RailsApp/app/views/pages/index.html.erb:4: syntax error, unexpected ',', expecting ')' ...er.append=( text_field_tag(:q), input );output_buffer.safe... ... ^ -- 有什么想法吗?
    • 您有语法错误。我添加了多余的括号。检查更新的答案
    猜你喜欢
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2014-09-08
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多