Tag: ruby on rails 3

f.select中Rails中的参数数量错误(3个为2)

我有这个多选列表给出了一个错误错误的参数数量(3个为2)在一个form_form一个“主题”模型has_many:课程,:through => another_model “Select Curriculum”, :multiple=>true , :class=>”chzn-select”} %> 但是,此代码在另一个控制器的视图中工作得很好: 这里我们有一个带有has_and_belongs_to_many:技能的问题模型 “Select Other Skills”,:multiple=>true,:class=>”chzn-select”}%> 这是完整的_form.html.erb: × Error! Topics {:class=>”form-horizontal”}) do |f| %> Topic Name Description <textarea name="topic[description]" value="”> Subject ‘Please Select Subject’}) %> Curriculum “Select Curriculum”, :multiple=>true , :class=>”chzn-select”} %> Concept Tag ‘Please Select’},{:name=>”topic[concept][][concept_id]”}) %> “margin-left:25px;”, :class=>’text_field’, :name=>’topic[concept][][concept_sequence]’, :placeholder=>’concept_sequence’, :size=>’30’%> Concept Tag ‘Please Select’},{:name=>”topic[concept][][concept_id]”,:class=>”chzn-select”}) %> […]

Rails 3 – 嵌套资源路由

在我的应用程序中,我有用户,然后每个用户都有一个邮箱,他们在那里发送邮件。 我的routes.rb看起来像: resources :users do resources :mailboxes end 如果我做一个rake路线,我看到这条路线可供我使用: user_mailbox GET /users/:user_id/mailboxes/:id(.:format) {:action=>”show”, :controller=>”mailboxes”} 我想在我的应用程序布局中链接到此路径,在用户在屏幕顶部找到的工具栏中。 我的观看代码是: ‘mail_notice’), user_mailbox_path(current_user)%> 我遇到的问题是,如果我对用户/ *没有任何帮助,我会收到此路径的路由错误 – 所以我的应用程序中的任何其他位置除了我的邮箱嵌套在其下的资源之外。 如果我在,让我说用户的索引页面,路径确实可以正常工作。 No route matches {:action=>”show”, :controller=>”mailboxes”, 这条路线有什么我可以错过的吗? 任何与用户相关的东西都有效,它只是我遇到问题的邮箱。 谢谢

如何限制当前登录的用户只能看到属于他们的产品?

如果用户使用特定角色( vendor )登录,则他们应该只看到他们在商店中创建的项目。 他们不应该看到其他供应商的产品。 所以我试图在我的授权中这样做(使用Devise,CanCan,Rolify)。 我试过这个: user ||= User.new # guest user (not logged in) if user.has_role? :vendor can :dashboard can :manage, [Product, Vendor], :vendor_id => user.id can :view, [Product], :vendor_id => user.id end 但是….没有太多运气……我错过了什么? 编辑1 我知道我可以限制控制器中的产品,如: @product = current_user.products 但这不是我想要的。 在这种情况下,供应商(即具有角色的用户:vendor )应该只能看到他们添加到商店的产品,但他们不应该能够看到其他供应商添加的产品。 但是,买方(即具有角色的用户:buyer )应该能够看到所有:buyer所有产品(管理员/等)。 买方将无法查看某些产品的价格和其他一些属性等。 我怎样才能实现这一切?

如何在Rails中访问嵌套参数

在Controller中,我正在尝试访问深度嵌套的参数。 这是我的参数跟踪。 Parameters: {“utf8″=>”✓”, “authenticity_token”=>”2j+Nh5C7jPkNOsQnWoA0wtG/vWxLMpyKt6aiC2UmxgY=”, “inventory”=>{“ingredients_attributes”=>{“0″=>{“ingredient_name”=>”Bread”}}, “purchase_date”=>”11”, “purchase_price”=>”11”, “quantity_bought”=>”11”}, “commit”=>”Create Inventory”} 我正试图从中检索“面包”。 我尝试了params[:inventory][:ingredient][:ingredient_name]和其他变种。 什么是正确的styntax? 如果重要, Inventory has_many :ingredients Inventory accepts_nested_attributes_for :inventories 谢谢!

如何从使用Heroku PG备份的备份中恢复三个项目?

我在Heroku上运行了一个Rails应用程序并安装了免费的pgbackups插件。 我想从备份中恢复三条记录。 根据Heroku docs进行还原时,它会还原整个数据库。 如何恢复这三个记录?

Rails 3 – 帮助使用电子邮件validation正则表达式

提供以下REGEX如果提供的电子邮件域与INVALID_EMAILs不匹配似乎无限期运行并锁定rails服务器(我的本地环境)。 INVALID_EMAILS = %w(gmail.com googlemail.com yahoo.com ymail.com rocketmail.com hotmail.com facebook.com) def valid_email_domain(emailAddy) reg = Regexp.new /#{User::INVALID_EMAILS.map{|a| Regexp.quote(a)}.join(“|”)}/ if emailAddy.scan(reg).size == 0 return true else return false end end 那里有可以提供反馈的正则表达专家吗? 谢谢 更新: 控制器: def create @user = User.new # User EmailVeracity to validate the email address email = EmailVeracity::Address.new(params[:user][:email]) Rails.logger.info ‘Email Check Result’ Rails.logger.info valid_email_domain(params[:user][:email]) Rails.logger.info […]

动态调整Active Admin表单上的下拉字段(rails 3.2)

我在Ruby on Rails应用程序上有一个非常基本的架构: 公司模式 行业模式(属于行业的公司) 子行业模式(子行业属于行业) 在我的活动管理表单页面上,我想放置字段,以便对于每个公司,我首先选择它所属的行业的下拉(这到目前为止工作),然后选择另一个字段“子行业”,它只会显示根据我在之前的领域中选择的行业,我在此行业中已经分类过的子行业。 例如,古柯将进入行业“饮料和饮料”,我希望动态调整forms,只显示在“sub indsutry”领域:“热饮”,“冷饮”,“茶”的下拉菜单,“苏打水” form do |f| f.inputs “Company” do f.input :company_industry_id, :label => “Select industry:”, :as => :select, :collection => CompanyIndustry.all f.input :company_subindfustry_id, :label => “Select subindustry:”, :as => :select, :collection => CompanySubindustry.all end 显然我到目前为止遇到了一个问题,它向我展示了我所拥有的所有子行业,而不仅仅是我在前一个领域选择的行业中的子行业。 有谁知道我怎么解决这个问题?

如何使用Model和controler not view来获取如下所示的记录?

如何使用Model和controler not view来获取如下所示的记录? 样式1。 有了帮手 application_helper def user_link(username) link_to User.find_by_username(username).user_profile.nickname, show_user_path(username) end 视图 模式2。 没有帮手。 只是查看 UPDATE

Rails简单通讯/邮件列表,通过电子邮件通知新的搜索结果

我的用户可以保存他们的首选搜索。 现在我需要给他们订阅它们的可能性,以便在新的搜索结果可用时收到电子邮件通知(如雅虎答案)。 我已经设置了一个Mailer ,当手动触发时,它正常工作。 现在我需要做的就是从预定的工作中打电话给邮件但是……我真的不是那个领域的专家。 所以,在Whenever , Delayed_job , Sidekiq , Resque Scheduler &co。 我应该选择哪一个(或一个组合)来完成这种任务(多次邮寄的长时间运行过程)? 编辑 我开发了一个工作示例应用程序 ,可在Github上找到: NotiSearch 。 它有很好的记录,所以,如果你想开发类似的东西,我肯定会建议你检查一下。 PS:我选择依赖于never和delayed_job,因为它们没有外部依赖关系,如果需要它应该很容易转换到更具伸缩性的解决方案。

如何在Rails中基于外键列选择唯一记录?

我的Rails 4.1应用程序中有以下模型结构: delivery_service.rb class DeliveryService < ActiveRecord::Base attr_accessible :name, :description, :courier_name, :active, :country_ids has_many :prices, class_name: 'DeliveryServicePrice', dependent: :delete_all end delivery_service_price.rb class DeliveryServicePrice < ActiveRecord::Base attr_accessible :code, :price, :description, :min_weight, :max_weight, :min_length, :max_length, :min_thickness, :max_thickness, :active, :delivery_service_id belongs_to :delivery_service end 如您所见,送货服务有很多送货服务价格。 我正在尝试从送货服务价格表中检索记录; 选择外键唯一范围内具有最低价格属性的记录 ,delivery_service_id(基本上是每个交付服务的最便宜的交付服务价格)。 如何使用外键属性作为范围从表中选择唯一记录? 我希望我已经解释得足够了,如果您需要更多信息,请告诉我。 谢谢 更新#1: 我正在努力实现的例子: delivery_service_prices表: id:1,价格:2.20,delivery_service_id:1 id:2,价格:10.58,delivery_service_id:1 id:3,价格:4.88,delivery_service_id:2 id:4,价格:1.20,delivery_service_id:2 id:5,价格:14.99,delivery_service_id:3 […]