假设我有一个用户表和一个活动表(带有user_id列),并且每个活动都有一个创建者(谁是用户),以及一个成员列表,他们也是(用户).所以我有
class UsersController < ApplicationController
has_many :campaigns
Run Code Online (Sandbox Code Playgroud)
和
class CampaignsController < ApplicationController
belongs_to :user
has_many :users
accept_nested_attributes_for :users
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:ActionController::RoutingError (undefined methodbelongs_to'for CampaignsController:Class)`
我正在尝试为我的项目渲染数据集合.
消息来源:
控制器中的数据绑定确实运行得很好,但我无法渲染模型View,这是从Controller.
我收到这样的错误:
the name 'model' does not exist in the current context
我不明白为什么?我收到这样的错误,因为另一个View的其他模型渲染效果很好,但不是这个.
谁能解释我,发生问题的原因是什么?
谢谢
CategoryModel当我把它放在models文件夹里时我的作品.但是当我把它放在像子文件夹里面时user.它抛出上述错误.
如图所示,模型在控制器内部被调用.
public function home() {
// titling
$data['title'] = "Price Soldier - Home";
// controlling
$data['current_category'] = "cellphones";
$data['current_brand'] = "all";
$data['current_sorting'] = "latest";
$data['categories'] = CategoryModel::get_all_categories();
$data['brands'] = BrandModel::get_all_brands_by_category("cellphones");
$data['latests'] = ProductModel::get_products("cellphones", "all", "latest");
$data['mvs'] = ProductModel::get_products("cellphones", "all", "most viewed");
$data['plths'] = ProductModel::get_products("cellphones", "all", "price low to high");
$data['phtls'] = ProductModel::get_products("cellphones", "all", "price high to high");
// viewing
return View::make("pages.user.home", $data);
}
Run Code Online (Sandbox Code Playgroud)
所以,简单来说,我如何访问子文件夹中的模型?
这是场景.实际的对象名称被调整,但这是主意.假设我有一个颜色模型
class Color(models.Model):
name = models.CharField(max_length=20)
Run Code Online (Sandbox Code Playgroud)
我也有一个用户模型
class User(models.Model):
Run Code Online (Sandbox Code Playgroud)
我想要做的是让用户选择多种颜色作为他们的最爱.有没有办法在单用户模型中正确存储多种颜色?
我有一个最好的想法是有一个看起来像这样的额外模型:
class UserMCColor(models.Model):
user = models.ForeignKey('User')
color = models.ForeignKey('color')
Run Code Online (Sandbox Code Playgroud)
并为所选择的每种喜欢的颜色添加该表的条目,然后只根据用户ID获取行.这是最好的方式吗?
我在我的模型的初始化方法中有以下内容:
@home_phone = contact_hash.fetch('HomePhone')
Run Code Online (Sandbox Code Playgroud)
但是,有时候我需要这个:
@home_phone = contact_hash.fetch('number')
Run Code Online (Sandbox Code Playgroud)
此外,有时这些都不是真的,我将需要该home_phone属性为空.
如何在不创建如此大循环的情况下编写出来:
if contact_hash.has_key?('HomePhone')
@home_phone = contact_hash.fetch('HomePhone')
elsif contact_hash.has_key?('number')
@home_phone = contact_hash.fetch('number')
else
@home_phone = ""
end
Run Code Online (Sandbox Code Playgroud) 如何为MVC模型中的枚举或列表中的Dropdownlist静态值(不是从数据库中检索)准备模型,以便它可以在项目中多次使用?如果你能发表一篇好文章,我将不胜感激?谢谢.
我正在尝试像这样实现Users类django.contrib.auth.models:
from django.db import models
from django.contrib.auth.models import User
class Registration(models.Model):
'''Represents a user registration.'''
user = models.ForeignKey(User)
registration_date = models.DateTimeField(auto_now_add=True, help_text='The date of the registration')
def __str__(self):
return '%s - %s' % (self.user, self.registration_date,)
Run Code Online (Sandbox Code Playgroud)
此用户默认启用两个属性:用户名,密码

阅读代码我可以看到有更多属性,如姓名和电子邮件.
如何启用那些隐藏(如果这是正确的)属性?
如何在模型轨道4内添加格式为mm/dd/yyyy的日期验证?
所以,我只想在模型中创建一个格式为mm/dd/yyyy的日期.
我怎么做?
我正在制作一个表单来编辑数据库中的现有条目.我使用Form :: model方法来做到这一点,但它似乎不起作用.这些田地空无一人.
ServerController.php
/**
* Editing servers
*/
public function edit($name)
{
$server = Server::find($name);
$keywords = ($server->getKeywords()) ? $server->getKeywords() : array();
$countries = $this->getCountries();
return View::make('server/edit', array('server' => $server, 'countries' => $countries));
}
public function update($name)
{
$server = Server::find($name);
// Did it succeed?
if($server->save()) {
Session::flash('success', 'You server was edited!');
return Redirect::route('server.view', array($name));
}
// Did not validate
if(Input::get('keywords')) {
$keywords = Input::get('keywords');
Session::flash('keywords', $keywords);
}
Session::flash('danger', "<b>Oops! There were some problems processing your update</b><br/>" . implode("<br/>", …Run Code Online (Sandbox Code Playgroud) 我正试图用我的模型调用一个方法:
<p>
<strong>Holidays this year:</strong>
<%= Country.all_holidays_in(2014) %>
</p>
Run Code Online (Sandbox Code Playgroud)
我也尝试将我的方法放在我的控制器中,但它不起作用.但我得到这个错误:
NoMethodError in Countries#show
Showing C:/xampp/htdocs/fluxcapacitor/app/views/countries/show.html.erb where line #15 raised:
undefined method `all_holidays_in' for Country(id: integer, name: string, countrycode: string):Class
Run Code Online (Sandbox Code Playgroud)
这是我的模特:
class Country < ActiveRecord::Base
has_and_belongs_to_many :groups
validates :name, presence: true
validates :countrycode, presence: true
def all_holidays_in(y)
from = Date.civil(y,1,1)
to = Date.civil(y,12,31)
return Holidays.between(from, to, self.countrycode)
end
end
Run Code Online (Sandbox Code Playgroud)
任何想法我怎么称呼它?