小编Kat*_*e M的帖子

Rails 4 - 通过link_to传递参数?

我有一个表单 - 根据用户点击显示表单的链接,我希望将不同的隐藏参数传递给记录并在提交时保存.有一个很好的方法来做到这一点?提前致谢!

例如:

<%= 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)

ruby-on-rails

11
推荐指数
1
解决办法
1万
查看次数

Rails 3.2验证 - 多个字段

我有奖励模特.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)

提前致谢!

ruby-on-rails-3

9
推荐指数
1
解决办法
1万
查看次数

MySQL将多个表中的记录插入到新表中

我正在尝试使用来自其他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条记录.

知道如何自动化吗?手动填充将是一场噩梦......

先感谢您!!

mysql

6
推荐指数
2
解决办法
4217
查看次数

Rails 4 - will_paginate

这是我第一次尝试使用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我做错了吗?提前致谢.

ruby-on-rails will-paginate

6
推荐指数
1
解决办法
1万
查看次数

Rails 4语法 - 多个条件

我该怎么写这个呢?

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)

如果我可以将这些条件放在模型中以便在其他控制器/视图中使用,那将是非常好的,因为我将在整个应用程序中经常使用这些条件.

ruby-on-rails

6
推荐指数
2
解决办法
2万
查看次数

Rails 3使用范围条件进行验证

我有一个带有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.

任何帮助都会很棒......谢谢!

ruby-on-rails-3

5
推荐指数
1
解决办法
4956
查看次数

MySQL更新列来自同一表中的其他列

我在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)

mysql

4
推荐指数
1
解决办法
3万
查看次数

基于Select Box - Rails 2.3.5的动态局部化

我编辑了我的请求,希望更清楚.我需要根据之前的选择框动态渲染部分.

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)

ruby-on-rails

3
推荐指数
1
解决办法
2742
查看次数

Rails 3 - 如何通过link_to增加值和更新数据库

我有一个观点:

<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很长一段时间了,所以我知道我错过了一些关键元素.有帮助吗?提前致谢...

ruby-on-rails-3

1
推荐指数
1
解决办法
3944
查看次数