Tag: 形成

从html表单提交运行Ruby文件

我有一个Ruby程序,它读取一个文件并返回一个特定的输出。 我现在必须使用Sinatra创建该程序的Web应用程序。 我创建了一个包含所有文件选项的form ,现在我想在按下提交按钮后从表单中运行该选定文件的Ruby代码。 基本上,我不确定如何让这个外部Ruby程序与用户从HTML form选择的文件名一起运行。 Ruby程序( example.rb )以定义def read_grammar_defs(filename) 。 // sinatra_main.rb require ‘sinatra’ require ‘sinatra/reloader’ if development? #gem install sinatra-contrib require ‘./rsg.rb’ get ‘/’ do erb :home end post ‘/p’ do //call program to read file with the parameter from form end // layout.erb RubyRSG Demo Select grammar file to create randomly generated […]

从视图ROR渲染表单部分

我试图在我看来从另一个控制器渲染一个表单。 这是posts_index,并且render post.com可以正常工作,但新评论的表单并不适用。 ‘/comments/form’, locals: {post: post} %> 我得到这个错误:nil的未定义方法`comments’:NilClass 评论forms: “comment_text_box” %> 我知道我需要将post.com传递给表单,但无法弄清楚如何。 Post_show适用于 post和评论是一个has_many关系,posthas_many评论。 谢谢你的期待。

与Pony和Sinatra一起发送邮件

我正试图从sinatra中的Pony Gem发送一封联系表格(内置HTML)的电子邮件,我已按照文档进行操作,但必须遗漏一些内容。 这是Pony配置 get ‘/contact’ do erb :contact, :layout => :layout end post ‘/contact’ do require ‘pony’ Pony.mail({ :from => params[:name], :to => ‘myemailaddress’, :subject => params[:name] + “has contacted you via the Website”, :body => params[:comment], :via => :smtp, :via_options => { :address => ‘smtp.gmail.com’, :port => ‘587’, :enable_starttls_auto => true, :user_name => ‘myemailaddress’, […]

Rails 4:收到以下错误:表单中的第一个参数不能包含nil或为空

我在我的项目中收到以下错误:表单中的第一个参数不能包含nil或为空。 我正在尝试为我的代码创建一个编辑页面。 Rails相当新,并试图学习没有脚手架。 控制器: class BooksController < ApplicationController def new @book = Book.new @authors = Author.all end def edit @book = Book.find(params[:id]) end def show #Notice how the @books is plural here. @books = Book.all @authors = Author.all #@books = Book.where(id: params[:id]) end #Create method will save new entries def create @book = Book.new(book_params) @authors […]

如何在不同时区显示Rails表单日期时间选择?

我想在其首选时区向用户提供日期时间选择,但将日期时间存储为UTC。 目前,默认行为是使用UTC显示和存储日期时间字段。 如何在不影响整个应用程序的情况下更改此字段的行为(即不更改应用程序默认时区)? 更新:这不是每用户时区。 我不需要调整时间显示方式。 只有这些特定字段处理不同的时区,所以我希望用户能够指定此时区的时间。

没有刷新页面如何显示闪存错误?

我有一个提交表单,显示在灯箱中。 我非常认真地validation了表单,但是有些情况下已经提交了播放列表,在这种情况下,在提交表单之前我无法分辨。 目前我有:disable_with => ‘Submitting…’ 如果错误被发送回表单,并且提交按钮将重新启用,那将是非常棒的。 这可能没有太多的复杂性吗? 我还有第二个相关的问题…因为我的表单在灯箱中,它的代码实际上是在索引页面上(我的应用程序只是一页)。 这意味着我的索引操作中没有’new’动作,而是@playlist = Playlist.new(:title => …) (以及@playlists = Playlist.all等)。 在我的路线中,我这样做: resources :playlists, :only => [:create] 这听起来跟我做的一样吗? 编辑:HEre是一些代码,虽然它基本上就像你想象的那么简单。 以下类型的作品……如果有效,则创建播放列表,否则无效。 两次调用create.js.erb ..我现在不知道如何使这项工作完成。 在成功我需要关闭窗口,失败时我需要将错误加载到已经在屏幕上的forms。 我不知道那是怎么回事:/ before_filter :load_genres, :only =>[:index, :user] before_filter :new_playlist, :only => [:index, :new] def index @playlists = Playlist.order(‘created_at DESC’).page(params[:page]).per(30) end def create @playlist = Playlist.new(params[:playlist]) respond_to do |format| […]

Rails多记录表单仅保存最后记录的参数

我正在努力为教师提供一个可以同时创建多个学生的表格。 似乎大多数人都使用嵌套属性来处理这个概念,但是当我只使用单个模型时,我很难理解它是如何工作的。 这篇文章似乎可以在没有嵌套属性的情况下实现这一点,但我的结果并不像作者所建议的那样工作。 学生数组应该为表单的每个部分包含一个哈希。 但是当我提交表单并检查参数时,数组中只存在一个哈希值。 调整她的方法,我有这个控制器: students_controller.rb def multi @student_group = [] 5.times do @student_group << Student.new end end (我正在使用一种我称之为“多”的动作,因为它与常规的“创建”动作不同,后者一次只创建一个学生。我已经尝试将所有内容都移动到常规创建动作中,但我得到相同的结果。) 风景: multi.html.erb 结果: (byebug) params “✓”, “authenticity_token”=>”3Xpi4XeqXuPs9jQvevy+nvGB1HiProddZzWq6Ed7Oljr3TR2fhx9Js6fN/F9xYcpgfDckCBOC2CoN+MrlFU0Bg==”, “students”=>{“first_name”=>”fff”, “last_name”=>”ggg”}, “commit”=>”Save changes”, “controller”=>”students”, “action”=>”create”} permitted: false> 名为“fff ggg”的学生只包含一个。 应该有四个不同学生的其他哈希。 提前感谢您的任何见解。

Rails 5 – Acts as Taggable在gem上 – 简单表单集合选择已定义的标签列表

我试图学习如何使用Acts作为Taggable在Rails 5的gem上。 我使用简单的表格forms。 我认为问题的一部分源于提案与randd_fields之间的模型没有关联。 我有名为Proposal和Randd :: Field的模型。 我正在尝试使用标签标记提案,这些标签是:Randd :: Field表的title属性。 我的模特有: 提案 class Proposal < ApplicationRecord acts_as_taggable_on :randd_maturities, :randd_fields, :randd_purposes, :randd_activities # acts_as_taggable # acts_as_taggable_on :skills, :interests 的RandD ::场 (没有关于提案的关联)。 提案助手 module ProposalsHelper include ActsAsTaggableOn::TagsHelper 在我的提案表单中,我尝试添加标签: 第一个注释表单输入字段用于允许我输入标记。 但是,标签是文本,我可以写任何我想要的东西。 这不是我想要的。 我希望标签的选择是:我的Randd :: Field模型中定义的:title属性。 我在下面尝试的第二个选项确实生成了一个列表,但是当我尝试将其保存为提案模型上的randd_field_list时,它会保存Randd :: Field表中的:id属性而不是:title。 当我尝试从表单输入行删除:id组件时,我收到一条错误消息: {} is not a symbol nor a string 当我尝试从表单输入行删除{}时,我收到一条错误消息: […]

在rails中使用邮件表单进行联系:Errno :: ECONNREFUSED:连接被拒绝 – 连接(2)

在你问之前,我已经连接到互联网了。 我已经尝试使用我的herokuapp上的表单和我的localhost上的表单,但都没有工作。 他们应该发送到我的电子邮箱。 我也尝试在控制台上使用它… c = Contact.new(:name => ‘Jose’, :email => ‘bob@bob.com’, :message => ‘blah’) c.deliver 这是我得到这个…… Errno::ECONNREFUSED: Connection refused – connect(2) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:540:in `initialize’ from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:540:in `open’ from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:540:in `tcp_socket’ from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:550:in `block in do_start’ from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/timeout.rb:66:in `timeout’ from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:549:in `do_start’ from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:519:in `start’ from /Library/Ruby/Gems/2.0.0/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!’ from /Library/Ruby/Gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:2129:in `do_delivery’ from /Library/Ruby/Gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:232:in `block in […]

如何在activeadmin下拉菜单中的#上显示模型标题?

我已经创建了一个关联,其中Project has_many任务和任务belongs_to Project。 我在admin / tasks.rb中创建了表单 form do |f| f.inputs “Details” do f.input :title f.input :project end f.buttons end 现在在编辑任务页面中,我有一个下拉菜单,我可以在其中选择项目,但条目为#. 如何自定义下拉列表中的条目以显示“项目标题”字段? 我是一个Rails新手。