Tag: model view controller

如何建立分页url​​的路径?

当用户#1喜欢/评论用户#2时,用户#2会收到通知: 通知/ _notifications.html.erb commented on 但是在用户#2点击通知后,由于我删除了activity_path ,因此它没有任何结果,如果我之前将其放回(notification.activity_id)我们会收到错误: 没有路由匹配{:action =>“show”,:controller =>“activities”,>:id => nil}缺少必需的键:[:id] 我不知道这是否可行,但点击通知用户#2将被带到活动的分页页面 。 通过gem will_paginate每页有20个活动,因此如果被注释的活动在第2页上,那么在点击活动时,用户#2应该被定向到:http: //0.0.0.0 : gem will_paginate /activities?page = 2 这至少会缩小注释对用户的活动供稿的位置。 活动/ index.html.erb activity.id), class: “btn”, method: :post do %> Like activities_controller.rb class ActivitiesController params[:page], :per_page => 20) end def show redirect_to(:back) end end 如果您发现可以这样做,请告诉我您是否需要更多代码:) UPDATE class NotificationsController < ApplicationController def index […]

.build无法分配尚不存在的外键

我有以下代码为我的用户控制器中的用户创建图片: def new @user = User.new @pictures = @user.pictures.build({:placement => “front”},{:placement => “profile”}) end 但是,当我创建新用户时,它不会自动构建具有“前”或“配置文件”位置的图片。 事实上,图片没有任何更新。 图片模型有 attr_accessible :placement 并在picture.rb belongs_to :user 并在user.rb中 has_many :pictures accepts_nested_attributes_for :pictures, allow_destroy: true 为什么我的构建命令无声地失败? UPDATE 使用.save!,我了解到正在分配@pictures ,但问题是没有user_id与它们相关联。 当我故意分配user_id时,如: def new @user = User.new @pictures = @user.pictures.build({:placement => “front”, :user_id => @user.id},{:placement => “profile”, :user_id => @user.id}) end 它仍然没有分配user_id。 奇怪的是,当我在rails控制台中运行相同的命令时,它会正确分配 […]

如何在rails中保持CRUD和RESTFull(具体示例)

我很难保持我的控制器不会太复杂,并且我们在绞架时会创建rails创建的基本操作。 如果下面的方法是正确的,有人可以告诉我。 我有一个模型Project和那些基本路线: GET /projects -> Project#index GET /projects/new -> Project#new POST /projects -> Project#create GET /projects/:id -> Project#show GET /projects/:id/edit -> Project#edit PATCH /projects/:id -> Project#update PUT /projects/:id -> Project#update 现在我想允许用户接受该项目。 首先,他有一个摘要视图,他可以按下按钮,它应该改变模型中的某些值。 我的第一次尝试是 GET /projects/:id/accept -> Project#accept POST /projects/:id/accept -> Project#accept_update 这感觉不对劲。 所以我想知道我是否应该这样做: GET /projects/:id/accept -> Acceptations#new POST /projects/:id/accept -> Acceptations#create 但是,我的我的Acceptations控制器正在处理Project模型。 什么开始让我感到困惑。 最重要的是,如果我使用第二个选项,路径应该是/projects/:id/acceptations/new这对于最终用户来说似乎很长并且令人困惑。

在rails中显示某些用户的博客post

好吧,开始学习rails,当然首先是通过个人博客(类似livejournal)编写服务。 我有post脚手架和用户模型(感谢Devise)。 现在我试图用某个用户显示所有post,例如/ username / posts在url中,但实际上无法理解如何制作这种rails-way。 已经在路由中创建了嵌套资源 resources :users do resources :posts end 和连接的用户和post模型 has_many :posts 和 belongs_to :user 我应该为用户创建控制器吗? 有没有正确的方法呢? PS谢谢你的回答。 试图研究rails,但几乎每个我发现的教程都以脚手架结束,这不是很有用。 编辑1:由于“匹配”的想法,我解决了一半的问题。 另一个(未解决的)一半是选择由某个用户写的post 编辑2:添加 @user = User.where(:username => params[:username]) @posts = @user.posts 对于控制器,但我在post控制器中有“未定义的方法`post’”错误。

在devise rails 3应用程序中注册用户后发送actionmailer电子邮件

我正在尝试在使用设计gem的rails 3应用程序中的用户注册时发送电子邮件。 每次我尝试发送电子邮件时,我都会收到以下错误: Devise中的NoMethodError :: RegistrationsController#为UserMailer创建未定义的方法`welcome_email’:Class 我的app / model / user.rb有以下代码…… after_create :send_welcome_email def send_welcome_email UserMailer.welcome_email(self).deliver end 我的app / mailers / user_mailer.rb有以下代码…… class UserMailer “#{user.email}”, :subject => “Welcome to My Awesome Site”) end end welcome_email方法存在,所以我不知道为什么我收到错误。 过去几个小时一直试图解决这个问题。 在此先感谢您的帮助!! 像往常一样,如果你给我一个很好的答案,我会接受它。 亚历克斯

导轨通知没有出现

我在使用Bootstrap的Rails 4中 这是我在我的控制器中的创建操作: def create @contest = Contest.new(contest_params) if @contest.save flash[:notice] = “Contest saved successfully” redirect_to @contest else redirect_to root_path, :notice => ‘Project not saved’ end end 提交表格时怎么没有通知? 有什么我想念的吗? 我是一个初学者,但却无法弄清楚这一点。 我的布局中已经有以下内容:

在Rails 4中显示所选类别的子类别

1.在我使用的** view / gigs / new.html.erb中 它创造了这个 点击下图时: 根据您选择的类别,从上图中可以看到,只显示该类别拥有的子类别。 2.在我的gig控制器中,我可以编写下面的代码。 def update_sub_categories @cats = Subcategory.where(category_id: params[:category_id]).all respond_with(@cats) end 3.我必须在相同的文件夹视图/ gigs / update_sub_categories中创建一个文件并放入此代码 $(“#gig_subcategory_id”).empty().append(” “subcategory”, :collection => @cats, :as => :cat)) %>”) 也是同一文件夹中的部分视图/ ig / _subcategory.html.erb <option value="”> 4.添加App / javascript / gigs.js.coffee $(document).on ‘change’, ‘#gig_category_id’, (evt) -> $.ajax ‘update_sub_categories’, type: ‘GET’ dataType: ‘script’ data: { […]

Rails 4:Model:Class的未定义方法`relation_delegate_class’

我正在尝试按照这个关于为Rails创建一个Scoped邀请系统的编码器教程。 在我的Rails 4应用程序中,我有以下模型: class User “Invite”, :foreign_key => ‘recipient_id’ has_many :sent_invites, :class_name => “Invite”, :foreign_key => ‘sender_id’ end class Calendar < ActiveRecord::Base has_many :administrations has_many :users, through: :administrations has_many :invites end class Administration < ActiveRecord::Base belongs_to :user belongs_to :calendar end class Invite ‘User’ belongs_to :recipient, :class_name => ‘User’ end 以下是我的模型与教程中的模型之间的对应关系: User User Calendar UserGroup Administration […]

ViewModel和Controller之间有什么区别?

一个与另一个的责任是什么? 一个与另一个应该采用什么样的逻辑? 哪一个打服务和数据库? 如何确定我的代码是应该放在viewmodel还是控制器中? 为了记录,我使用ASP MVC,但由于问题是架构,我不相信我使用的语言或框架。 我邀请所有MVC回应

rails 4模型关联左连接validationid

我一直在争论这个,我想创建一个LEFT加入条件,所以我有一个优惠券模型,用户可以创建优惠券,但他们可能会或可能不会被分配到一个工作,当他们被分配时他们被认为执行。 我有这个设置为has_one :job优惠券模型上的add_reference :jobs, :coupon, index: true与add_reference :jobs, :coupon, index: true索引,但这似乎是borked。 我认为今天我的大脑已被炸了……如果使用优惠券,我最好确认它被分配到有效的工作,这就是我使用索引的原因。 class CreateCoupons < ActiveRecord::Migration def change create_table :coupons do |t| t.string :code, limit: 250, null: false t.datetime :start_at, null: false t.datetime :end_at, null: false t.datetime :executed_at t.datetime :deleted_at t.timestamps null: false end add_reference :jobs, :coupon, index: true add_index :coupons, :deleted_at add_index :coupons, :code, […]