我有一个表单 - 根据用户点击显示表单的链接,我希望将不同的隐藏参数传递给记录并在提交时保存.有一个很好的方法来做到这一点?提前致谢!
例如:
<%= link_to 'General Request', new_request_path %>
<%= link_to 'Project Request', new_request_path %> ### -> set request.project = true
<%= link_to 'Administrative Request', new_request_path %> ### -> set request.admin = true
Run Code Online (Sandbox Code Playgroud) 我有奖励模特.NOMINATOR从下拉列表中选择自己,然后从另一个下拉列表中选择NOMINEE.
如何通过模型中的验证禁止自我提名?换句话说,提名者不能从被提名者选择名单中选择自己.
class Award < ActiveRecord::Base
belongs_to :nominator, :class_name => 'Employee', :foreign_key => 'nominator_id'
belongs_to :nominee, :class_name => 'Employee', :foreign_key => 'nominee_id'
validates :nominator_id, :nominee_id, :award_description, :presence => true
end
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在尝试使用来自其他2个表的记录来填充新表.
period_states是new/empty
period_states
id
period_id
sla_id
Run Code Online (Sandbox Code Playgroud)
期间 - 包含15条记录
periods
id
Run Code Online (Sandbox Code Playgroud)
slas - 包含84条记录
slas
id
Run Code Online (Sandbox Code Playgroud)
我需要在每个现有的sla_id中填充period_states,每个sla_id都有一个exiting period_id.所以,最终在period_states中应该有1260条记录.
知道如何自动化吗?手动填充将是一场噩梦......
先感谢您!!
这是我第一次尝试使用will_paginate(我知道!我去过哪里了?)
titles_controller.erb
def index
@titles = Title.active.sorted.paginate(:page => params[:page])
end
Run Code Online (Sandbox Code Playgroud)
index.html.erb
<% will_paginate @titles.each do |title| %>
Run Code Online (Sandbox Code Playgroud)
错误:
undefined method `total_pages' for #<Enumerator:0x00000002bacaf0>
Run Code Online (Sandbox Code Playgroud)
WTF我做错了吗?提前致谢.
我该怎么写这个呢?
Request.pending.where(.....) ## Request.pending = request.state_id in (1..3)
Run Code Online (Sandbox Code Playgroud)
这些是条件:
approver1_id = current_user and state_id = 1
or
approver2_id = current_user and state_id = 2
or
approver3_id = current_user and state_id = 3
Run Code Online (Sandbox Code Playgroud)
如果我可以将这些条件放在模型中以便在其他控制器/视图中使用,那将是非常好的,因为我将在整个应用程序中经常使用这些条件.
我有一个带有approver_note,po_number和state_id的发票模型.
我需要验证来检查:
validates :approver_note, :presence => true, {:scope => state_id == 3}
validates :po_number, :presence => true, {:scope => state_id ==2}
Run Code Online (Sandbox Code Playgroud)
因此,如果用户选择state_id = 3,则必须输入注释.如果他选择state_id = 2,他必须输入一个po_number.
任何帮助都会很棒......谢谢!
我在USERS表中添加了一个新列supervisor_id,我需要从同一个USERS表填充:
ID | USERNAME | SUPERVISOR_USERNAME | SUPERVISOR_ID
1 | jdoe | jsmith | NULL
2 | jsmith | dduck | NULL
Run Code Online (Sandbox Code Playgroud)
我将如何遍历表以设置supervisor_id = id,如下所示:
ID | USERNAME | SUPERVISOR_USERNAME | SUPERVISOR_ID
1 | jdoe | jsmith | 2
2 | jsmith | dduck | NULL
Run Code Online (Sandbox Code Playgroud)
我尝试了以下内容,但显然只设置了supervisor_id,其中用户的supervisor_username是他自己的用户名.
update users
set supervisor_id = id
where supervisor_username = username
Run Code Online (Sandbox Code Playgroud) 我编辑了我的请求,希望更清楚.我需要根据之前的选择框动态渲染部分.
REQUEST属于PRODUCT
PRODUCT属于CATEGORY
CATEGORY有很多产品
PRODUCT有很多要求
用户点击表单:create_request.html.erb
用户选择一个类别,然后填充产品选择列表(如Railscast 88 - 动态选择框)
我现在需要的是根据选择的产品呈现不同的部分形式.我吮吸jquery.
create_request.html.erb:
<%= javascript_include_tag "dynamic_products.js" %>
<% form_for :request, :url => {:controller => :requests, :action => :create_request, :id => params[:id]} do |f| %>
<label>Select Category:</label>
<%= select( "request", "category_id", Category.find( :all).collect { |c| [c.name, c.id] })%></br>
<div id="product_field">
<label>Select Product</label>
<%= select( "request", "product_id", Product.find( :all).collect { |p| [p.name, p.id] })%></br>
</div>
#### and here is where I need help:
#### if request.product_id = 1, render partial _form1
#### if …Run Code Online (Sandbox Code Playgroud) 我有一个观点:
<h2>The current billing period is <%= @current_period %></h2>
<h2>The current period approved is <%= @approval_period %></h2>
<h2><%= link_to "Approve Period", :method => :approve, :id => @approval_period %></h2>
Run Code Online (Sandbox Code Playgroud)
和一个控制器:
def approval_period
@current_period = PeriodCounter.first.period.pe_number
@approval_period = ApprovalPeriod.first.period.pe_number
end
def approve
@approval_period = ApprovalPeriod.first.period_id
@approval_period.update_attribute("period_id", period_id + 1)
@approval_period.save
redirect_to :back
flash[:notice] = "Approval Period Updated."
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试更新数据库,以便在点击链接时将@approval_period增加1.我已经离开Rails很长一段时间了,所以我知道我错过了一些关键元素.有帮助吗?提前致谢...