Tag: 形成

在Rails 4中发送带有远程true的表单

我有一个用于更新图像的表单 true do |f| %> 行动有 respond_to do |format| format.js format.html end 但我收到以下错误 ActionView::MissingTemplate – Missing template users/update_image, application/update_image with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. 我没有update_image.html.erb模板,但是从错误中我得知请求不是以js格式发送的 我错过了什么?

Rails 4:使用Cocoon Gem将child_index添加到动态添加(嵌套)表单字段

更新:我正在尝试将表单字段添加/删除到涉及多个模型的嵌套表单。 我已经看过Ryan Bates的“动态表格”轨道广播,我已经使用Cocoon Gem参考了这篇文章 。 在该文章之后,除了child_index之外,一切都完美无缺。 child_index仅出现在第一个:kid输入字段( :name )和第一个:pet输入字段( :name和:age )上。 然后它返回到正在添加的字段的真实性标记。 我已经删除了所有的JS和帮助器方法,而是使用了一些内置JS的Cocoon方法。 我修复了问题,单击“添加”将通过从application.html.erb文件中删除= javascript_include_tag :cocoon来添加两个字段而不是一个。 我试过添加jQuery和表单助手,但我不确定我是否正确输入了代码。 (我更改了模型对象以使关系更清晰) parent.rb文件: class Parent < ActiveRecord::Base has_many :kids has_many :pets, through: :kids # <<<<<< ADDED KIDS USING 'through:' kid.rb文件: class Kid < ActiveRecord::Base belongs_to :parent has_many :pets accepts_nested_attributes_for :pets, reject_if: :all_blank, allow_destroy: true validates :name, presence: true pet.rb文件: […]

轨道3中的自动生成路径?

从一些railscast( 特别是这个 )的外观来看,似乎有一些“* _path”变量的自动生成并没有发生在我身上。 在这个rails cast中,edit_mutliple_products_path似乎是自动生成的(我通常不喜欢使用该单词)。 当我按照相同的步骤尝试访问类似的路径时,我得到这个: undefined local variable or method `edit_multiple_distributions_workflows_path’ for #<#:0x132af3290>

如何在同一索引页上的单独表中显示真/假布尔值?

我能够在_form中检查布尔值,但是“目标”只显示在“已完成”目标表中,而不是在其上方的目标表中(无论是否已检查)。 如何在顶部表格中显示虚假目标(未完成核对的目标)和底部表格中的真实目标(已完成核对的目标)? 对于代码炸弹丢弃感到抱歉,我是布尔和范围的新手,所以我想确保我展示了解决这个问题可能有用的所有代码,因为我投入了我认为可能有用的随机内容。 index.html.erb GOALS <span class="glyphicon glyphicon-plus" ACCOMPLISHED goal.rb class Goal { where(accomplished: true) } end create_goals.rb class CreateGoals < ActiveRecord::Migration def change create_table :goals do |t| t.string :name t.date :deadline t.boolean :accomplished t.timestamps null: false end end end schema.rb(部分) create_table “goals”, force: true do |t| t.string “name” t.date “deadline” t.boolean “accomplished”, default: false […]

如何在Rails中的“编辑”表单中映射关联数据?

这是如何从rails表单中的对象关联提供数据的后续行动? 我想知道,我想使用急切加载来为文章对象的编辑页面提供标签(以及通过关联表格保存的其他属性。在上一个问题中,我被告知我可以使用预先加载预加载该数据的关联。控制器中的IE我扩充.find调用include @article = Article.find(params[:id], :include => [:tags]) 这将是很好的,除了它有两个主要的警告。 首先是它为表格中的字段提供对象。 因此,在此示例中,编辑表单中的:tags字段将填充: [#] 而不是 Wondering 第二个警告是我无法将这些关联提供给自定义字段。 例如,我没有:tags字段,而是有一个:tag_list字段。 在创建文章时,用户在此输入多个标签。 在编辑时,:标签不会按名称映射并放入tag_list字段。 我总是可以将此行添加到控制器: @article.tag_list = @article.tags.map(&:name) 但我正在寻找一个更优雅的解决方案,因为我有很多字段,我必须写这个,这似乎浪费了代码行。 有人可以帮忙吗?

编辑表单删除数据库中的记录

我有一个嵌套的表单,可以很好地保存数据库的内容。 唯一的问题是,当我单击编辑时,“grand-child”字段将从数据库中删除,因此我必须重新输入该字段上的所有内容。 正常行为是编辑应存在的先前内容。 我正在使用gem cocoon simple_forms用于我的表单的嵌套表单simple_forms和用于ckeditor编辑的ckeditor 。 这是我单击编辑时的服务器日志:通知: SQL (0.3ms) DELETE FROM “responses” WHERE “responses”.”id” = $1 [[“id”, 53]]每次我点击编辑时都会发生进入考试模型。 另请注意,问题已选中但未删除。 很奇怪。 Started GET “/exams/24/edit” for 127.0.0.1 at 2015-11-09 16:59:40 +0300 Processing by ExamsController#edit as HTML Parameters: {“id”=>”24”} Exam Load (0.8ms) SELECT “exams”.* FROM “exams” WHERE “exams”.”id” = $1 LIMIT 1 [[“id”, 24]] Question Load (0.4ms) […]

在使用date_select并在Rails中丢弃年份时按顺序保留日期?

我的应用拥有季节性产品的用户。 当用户选择产品时,我们允许他也选择产品的季节。 我们通过让他为每个产品选择开始日期和结束日期来实现这一目标。 我们使用date_select生成两组下拉菜单:一组用于开始日期,一组用于结束日期。 包括年份对我们的模型没有意义。 所以我们使用的选项: discard_year => true 要解释我们的问题,请考虑我们的产品是苹果。 供应商X每年从9月到1月运送苹果。 岁月与此无关,这就是我们使用discard_year => true 。 但是,虽然具体年份无关紧要,但从开始日期到结束日期的相对时间点是相关的。 这就是我们的问题出现的地方。 当你使用discard_year => true ,Rails确实在数据库中设置了一年,它只是没有出现在视图中。 Rails在我们的应用程序中将所有年份设置为0001。 回到我们的苹果示例,这意味着数据库现在认为用户已经选择了0001年1月到1月1月。由于多种原因,这对我们来说是一个问题。 要解决这个问题,我需要实现的逻辑如下: 如果season_start月/日在season_end月/日之前是数字,那么标准的Rails方法就可以了。 但是,如果season_start月/日在season_end月/日之后是数字,那么我需要动态更新数据库字段,使得season_end的年份等于season_start + 1的年份。例如,如果用户选择10月15日到1月15日,他的意图是0001年10月15日至2000年1月15日。我需要该应用程序来反映这一点。 我最好的猜测是我会创建一个自定义方法,在我的产品模型中作为after_save或after_update运行。 但我不确定如何做到这一点。 想法? 有没有人遇到过这个问题? 谢谢!

通过新表单传递ID

这个问题是关于我正在尝试的另一种方法: 通过新表单传递ID 我有一个group#view page ,由Person访问。 在此页面中, Person可以通过我开发的方法查看组的成员。 问题是我需要使用group的Id,访问页面的person的id以及来自该group的id来创建模型Honors 。 在我的Honors控制器中,我有: def create @person = Person.find(current_person) @asked_groupmembership = @person.owned_group_memberships.find_all_by_status(true,:include => [:group, :member]) @asked_groupmembership.each do |agm| @honor = Honor.create(:group => Group.find(params[:group_id]), :person => Person.find(current_person), :honored => Person.find(agm.member.id)) end if @honor.save … end 在我看来,我有一个链接,指导person到表单,以创建一个新的荣誉: @group.id, :person => current_person.id, :honored => agm.member.id) %> 但在我的表格中,我无法得到ids和东西 honors_path(:group_id, :person, :honored)) do |f| […]

在提交和重新加载页面后,我的表单复选框如何保持其状态?

我有一个由复选框组成的表单,它在索引页面上过滤记录,如何在表单提交并重新加载页面后,如何使表单中的复选框保持其已检查状态? 我已经使用jQuery-UI使复选框看起来更好。 我是任何类型的编程超级新手,javascript运气不佳。 index.html.erb $(function() { $(“.areas”).buttonset(); }); $(function() { $( “button, input:submit, a”, “.filter_form_button” ).button(); $( “a”, “.form_filter_button” ).click(function() { return false; }); }); :get, :id => ‘filter_form’ do %> “area-#{a.id}” %> <label for="area-“> 任何帮助都非常感谢!

如何使用表单连接has_one与条件的关系

我有一个has_one通过关系,条件连接我的应用程序中的旅行和地址。 每次旅行都有两个地址:起点和目的地。 地址可用于许多不同的旅行,可以是起点或目的地。 在应用程序中,行程和地址通过名为TripLocation的模型连接,该模型作为布尔列“目标”设置地址是否作为行程的目的地。 要查看有关该关系的更多信息,请参阅我之前提出的有关同一应用程序的问题: 在分配不同角色时在Rails中执行Has_many 我希望应用用户在创建旅行时从源和目的地的可能地址列表中进行选择。 这就是我所拥有的,我知道这是不正确的: #other trip things here like date and time (最终我将限制Address.all的地址选择,但是现在我希望这个版本能够工作。) 当我尝试从此表单提交时,我收到以下错误消息: NoMethodError in TripsController#create undefined method ‘id’ for “1”:String 所以这似乎是期望有一个对象(带有id)而不是包含对象id的字符串。 我知道数据库中应该出现哪些新条目以正确连接所有内容,但我不确定如何使用rails来实现目标,并且我很感激任何信息都指向了正确的方向。 编辑:以下是trips_controller中创建操作的代码: def create @trip = Trip.new(trip_params) if @trip.save redirect_to @trip, notice: ‘Trip was successfully created.’ else render action: ‘new’ end end 由于这是Rails 4,trip_params是以下私有方法: def trip_params params.require(:trip).permit(:origin, :destination, […]