Tag: ruby on rails 4

Rails表单:使用AJAX基于其他collection_select值更新collection_select选项

我刚刚开始学习Rails,并且我与内置工具,Javascript和AJAX相处得很好但是对我来说是非常新的。 这是问题所在: 我有一张订单。 每个订单都属于一个联系人,可以有不同的账单和送货地址。 collection_select框用于设置这些值。 如果我不介意必要的页面重新加载以减少可用的地址选项(这应该仅限于属于所选联系人的地址),所有这些都可以正常工作。 在没有页面重新加载的情况下,使这项工作最简单,最容易维护的选项是什么? 这就是我在卡住之前尝试将表单变形的问题。 让我们从views / orders / edit.html.erb的摘录开始: … … 我省略了送货地址选择框,因为它与开票下拉列表相同。 我们暂时只关注它。 这是controllers / orders_controller.rb中的更新操作: def update @order = Order.find(params[:id]) respond_to do |format| if @order.update_attributes(order_params) format.html { redirect_to edit_order_path, notice: “Auftrag aktualisiert.” } format.json { render json: @order } format.js else render ‘edit’ end end end 我尝试查看联系人选择框以进行更改,以便立即保存,希望地址选择也会立即反映这些更改。 此观察者位于assets / javascript […]

Rails4链轮; 资产逻辑路径没有扩展名

我最近升级到Rails 4,在运行我的请求规范时,我开始收到以下错误: 失败/错误:无法从回溯中找到匹配的行Sprockets :: ArgumentError:资产逻辑路径没有扩展名:europe Blockquote# initialize’ # /usr/local/rvm/gems/ruby-1.9.3-p448/gems/sprockets-2.10.1/lib/sprockets/base.rb:380:in new’# initialize’ # /usr/local/rvm/gems/ruby-1.9.3-p448/gems/sprockets-2.10.1/lib/sprockets/base.rb:380:in -2.10.1 / lib / sprockets / base.rb:380:在build_asset’ # /usr/local/rvm/gems/ruby-1.9.3-p448/gems/sprockets-2.10.1/lib/sprockets/index.rb:94:in / usr / local / rvm / gems / ruby​​-1.9.3-p448 / gems / swsockets-2.10.1 / lib / sprockets / index中build_asset’ # /usr/local/rvm/gems/ruby-1.9.3-p448/gems/sprockets-2.10.1/lib/sprockets/index.rb:94:in build_asset build_asset’ # /usr/local/rvm/gems/ruby-1.9.3-p448/gems/sprockets-2.10.1/lib/sprockets/index.rb:94:in块’#/ cache_asset’ # /usr/local/rvm/gems/ruby-1.9.3-p448/gems/sprockets-2.10.1/lib/sprockets/index.rb:93:in local / cache_asset’ # […]

邮件程序错误丢失模板

你好, 当我尝试执行操作时,我遇到了ActionMailer的问题: rake send_email 我收到一个错误: rake aborted! ActionView::MissingTemplate: Missing template user_mailer/mailer with “mailer”. Searched in: * “user_mailer” 这是我的: 邮寄/ user_mailer.rb class UserMailer < ActionMailer::Base default from: "from@example.com" def mailer(user) @user = user mail(to: @user.email, subject: 'Test') end end 视图/ user_mailer文件/ mailer.html.erb Sample mail. 视图/ user_mailer文件/ mailer.text.erb Sample mail. LIB /任务/ emails_task.rake desc ‘send email’ task […]

在服务器端向ActionController :: Parameters添加值

我想在服务器上为params添加一些值。 def my_params params.require(:my_model).permit(:my_field1, :my_field2, :my_field3) end def update # ……………… # checking my_params[“my_value”].class # => ActionController::Parameters my_params[“my_value”] # => nil # adding my_params[“my_value”] = “my value’s value” # => “my value’s value” # but it’s still nil my_params[“my_value”] # => nil # ……………… end 为什么我不能将它添加到my_params ?

Rails中不区分大小写的搜索

我发现搜索我特别不想要字符大小的事情的最好方法是: @tag = Rails.env.development? ? Category.where(“LOWER(name) LIKE ?”, “%#{params[:find]}%”)[0] : Category.where(“LOWER(name) ILIKE ?”, “%#{params[:find]}%”)[0] 我必须有.env查找器,因为我使用Heroku,我不关心在我的开发机器上安装PostgreSQL。 不过,有没有像: @tag = Category.find_by_name(params[:find], case_sensitive: false) 我们可以将选项传递给Rails中的find_by助手吗? 这将是一个很好的。

Devise中两个非常不同的用户模型

我的应用程序中有两种不同类型的用户使用Devise进行身份validation使用Rails 4,但它们具有非常不同的字段。 一个是买方,另一个是卖方。 买方必须拥有位置和付款信息,而卖方则不需要。 最初我认为创建两个单独的Devise模型是一个好主意,但必须有更好的方法。 我考虑将所有内容保存在同一个表格中并序列化买方的付款数据。 什么是好的解决方案?

从我的Ruby on Rails Gem渲染视图

我为Ruby on Rails创建了一个简单的Gem; 我的想法是它为我在几个应用程序中使用的常见操作(索引/显示/等)提供了一些代码/视图。 我想在gem中“干掉它”。 创建关注点没有问题,但是,我似乎无法在我的应用程序中呈现视图。 例如,在我的lib/rails_default_actions/rails_default_actions.rb我做: module RailsDefaultActions module DefaultActions extend ActiveSupport::Concern respond_to do |format| format.html { render ‘default/index’ } end end end end 但是提出了一个错误: Missing template default/index with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :slim, :haml]}. Searched in: * “/home/martin/myapp/app/views” * “/home/martin/myapp/vendor/bundle/ruby/2.1.0/gems/devise-3.2.4/app/views” * “/home/martin/myapp” 我最终设法破解了这个错误,但它感觉非常kludgey并且在某些情况下不起作用。 在gem中包含视图的正确方法是什么? 我看过创建一个引擎,但这看起来有点过分,因为我只是有一个问题和一些观点。

使用acts_as_taggable在Ruby on Rails 4中保存标记时遇到问题

我正在尝试将act_as_taggable实现到我的Rails 4应用程序中(在微博模型上),但程序没有保存标签,因此无法查看。 标签和标签的表已经过调整并存在于数据库中,但是我提供的代码似乎都没有提交标签或在提交表单时创建标签。 我完全按照本教程中的步骤操作,但似乎没有用。 我不确定它是否是以rails 4为中心的问题和/或是否与rails中使用的’attr_accessible’代码缺乏有关。 由于代码示例没有指定向微博表添加任何内容,我只能假设连接是在其他地方进行的,但我应该在哪里以及如何修复我不知道的内容(在microposts_helper.rb中可能?)。 提前致谢。 任何帮助是极大的赞赏。 相关代码片段 的Gemfile … gem ‘acts-as-taggable-on’, ‘~> 2.4.1’ … microposts.rb class Micropost < ActiveRecord::Base belongs_to :user acts_as_taggable acts_as_taggable_on :tags … end microposts_controller.rb before_action :signed_in_user, only: [:create, :destroy] before_action :correct_user, only: :destroy def index if params[:tag] @microposts = Micropost.tagged_with(params[:tag]) else @microposts = Micropost.all end end def create @micropost […]

如何以多种forms访问多个模型

首先,我要感谢所有人。 在过去的几天里,我得到了很多人的帮助,非常感谢! 我手上还有另一个问题: 背景/目标: 我有一个Tour,Day和Reservation模型。 在我的Tour控制器中,我可以创建一个游览并在游览可用的日子里手动输入。 然后我想访问每个旅游预订页面(旅游/ 1 /预订/新)并显示旅游信息以及旅游指定日期。 我的问题是: 1)我需要在预订控制器和视图中放置什么才能让我在选择标签中访问每个游览指定日期? 2)是否有一种Rails方式可以将输入的一周中的日期变为动态forms,其中显示指定的日期和日期? 例如:周一和周二(每周)可以使用Tour#1(这些是在我创建游览的几天内手动输入的)。 如何将这些日子转变为动态forms,其中Rails显示每个月的每个星期一和星期二的日期? (我可能会发布另一个问题,只是想知道,因为它有点相关。) 深刻的解释总是受到赞赏,因为我有点无能为力。 :( 再次感谢你! 更新: 如果他们在form_helper中,或者甚至像我将引导下拉菜单类应用于周围元素一样简单,那么每个游览的日期都不会显示在预订页面上。 这有效:(显示天数) 这不是: 或者这个: 我完全难过了。 楷模: class Tour lambda { |a| a[:name].blank? }, :allow_destroy => true end class Reservation lambda { |a| a[:name].blank? }, :allow_destroy => true end class Day lambda { |a| a[:name].blank? }, :allow_destroy […]

将局部变量传递给控制器​​的视图

我无法出于某种原因将局部变量传递给show视图…… 在我的控制器中我简单地说: def show render template: “books/show”, :resource => “Some text” end 在我看来,我打印以下内容: My local variable text: 我收到以下消息: undefined local variable or method `resource’ for #<#:0x00000118ec3498> 我在控制器中尝试了以下语法: render template: “books/show”, locals: { resource: “Some text” } render template: “books/show”, locals: { resource => “Some text” } render template: “books/show”, :locals => { resource: “Some text” […]